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