結果
問題 |
No.77 レンガのピラミッド
|
ユーザー |
|
提出日時 | 2020-04-25 17:10:13 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 914 bytes |
コンパイル時間 | 2,300 ms |
コンパイル使用メモリ | 147,044 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-16 10:56:40 |
合計ジャッジ時間 | 2,843 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
ソースコード
func main() var n: int :: cui@inputInt() var a: []int :: #[2 * n]int for i(0, n - 1) do a[i] :: cui@inputInt() end for var ans: int :: 10000 for c(0, 2 * n - 1) var r: int :: 2 * c if(r > 2 * n - 1) break c end if do ans :: [ans, f(a, c, r)].min() end for do cui@print("\{ans}\n") func f(a: []int, center: int, right: int): int var plus: int var minus: int for i(0, ^a - 1) if(i <= center) var targetVal: int :: i + 1 if(a[i] > targetVal) do plus :+ a[i] - targetVal elif(a[i] < targetVal) do minus :+ targetVal - a[i] end if elif(center < i & i <= right) var targetVal: int :: right - i + 1 if(a[i] > targetVal) do plus :+ a[i] - targetVal elif(a[i] < targetVal) do minus :+ targetVal - a[i] end if else do plus :+ a[i] end if end for if(plus >= minus) ret plus else ret 10000 end if end func end func