結果
問題 | No.77 レンガのピラミッド |
ユーザー |
|
提出日時 | 2014-11-26 00:41:59 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 100 ms / 5,000 ms |
コード長 | 853 bytes |
コンパイル時間 | 220 ms |
コンパイル使用メモリ | 7,808 KB |
実行使用メモリ | 13,056 KB |
最終ジャッジ日時 | 2025-01-03 08:45:15 |
合計ジャッジ時間 | 3,590 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
コンパイルメッセージ
Syntax OK
ソースコード
# Here your code ! # 1 + 3 + 5 + ... = N * (1 + (2N-1))/2 = N * N N = gets.to_i A = gets.split.map(&:to_i) sum = A.inject(&:+) level = Math.sqrt(sum).floor #level = [level,(N+1)/2].min mintotal = 1000000 #puts "sum=#{sum}, level=#{level}" # (0+(level-1)...N-(level-1)).each{|i| (level-1..level-1).each{|i| total = 0 #puts "i=#{i}" # (-(level-1)..(level-1)).each{|j| (0...N).each{|j| h = 0 if j>=0 && j< N then h = A[j] end base = 0 if level >= (i-j).abs base = level - (i-j).abs end if h > base then diff = (h - base).abs total += diff end #puts "i=#{i}, j=#{j}, h=#{h}, base=#{base}, diff=#{diff}, total=#{total}" } mintotal = [mintotal, total].min } puts mintotal