#https://yukicoder.me/contests/532 #MOD_N=998244353 srand(1234) MOD_N=10**8 #V=5-1 #n,m,h = gets.chomp.split().map{_1.to_i} n =gets.chomp.to_i #n =gets.chomp.to_i #raise "unexpected size n #{n}" unless n==600 #def d(v1,v2) = [(v1-v2).abs,MOD_N-(v1-v2).abs].min def d(v1,v2) = MOD_N/2-((v1-v2).abs-MOD_N/2).abs a=[] n.times{ a << gets.chomp.split(' ').map{_1.to_i} raise "unexpected size" unless a.last.size == a.size } def ppp(s) # pp s; STDOUT.flush end class Cl attr_accessor :a attr_accessor :b def initialize(a) @a=a end end def next_(arr) (0...arr.size-1).each{ arr[_1]+=arr[_1+1] arr[_1]%=MOD_N } arr.pop end def calc_total_d(arr,a) max_=0 (0...a.size).each{|row| a_=a[a.size-row-1] raise "unexpected arr.size=#{arr.size}, a.size=#{a_.size}" unless arr.size==a_.size (0...a_.size).each{ dd=d(a_[_1],arr[_1]) max_ = dd if max_