結果
問題 | No.5021 Addition Pyramid |
ユーザー |
|
提出日時 | 2025-02-25 21:42:46 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 686 ms / 2,000 ms |
コード長 | 1,301 bytes |
コンパイル時間 | 940 ms |
コンパイル使用メモリ | 7,936 KB |
実行使用メモリ | 14,080 KB |
スコア | 14,082,765 |
最終ジャッジ日時 | 2025-02-25 21:43:23 |
合計ジャッジ時間 | 36,703 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
コンパイルメッセージ
Syntax OK
ソースコード
#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_<dd } next_(arr) } return max_ end def solve(a) #arr=a.last.clone arrset=[] 1000.times{ arr=[] a.size.times{arr << rand(MOD_N)} arrset << [calc_total_d(arr.clone,a),arr.clone] } arrset.sort! # calc_total_d(arr.clone,a) #pp arrset arr= arrset[0][1] $stderr.puts "# #{5*(10**7) - calc_total_d(arr.clone,a)}" return arr.join(' ') end puts solve(a) STDOUT.flush