結果
| 問題 | 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
            
            
            
        