結果

問題 No.77 レンガのピラミッド
ユーザー むらためむらため
提出日時 2017-08-15 18:42:28
言語 Nim
(2.0.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 818 bytes
コンパイル時間 818 ms
コンパイル使用メモリ 69,596 KB
最終ジャッジ日時 2024-04-27 02:29:06
合計ジャッジ時間 1,212 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 50) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated]
/home/judge/data/code/Main.nim(17, 39) Error: undeclared field: 'a'

ソースコード

diff #

import sequtils,strutils,strscans,algorithm,math,future,macros
template get*():string = stdin.readLine() #.strip()

let
  N = get().parseInt()
  A = get().split().map(parseInt)
  height = A.sum().float.sqrt.int
  bottom = height * 2 - 1
  target = toSeq(0..<bottom).mapIt(height - abs(it-(bottom div 2)))
  dispose = A.sum() - target.sum()

if target.len <= A.len : # 222222 => 123210 012321
  var ans = newSeq[int]()
  for offset in 0..A.len - target.len:
    var target2 = newSeqWith(A.len-target.len, 0)
    target2.insert(target,offset)
    ans &= A.zip(target2).mapIt(abs(it.a-it.b)).sum() div 2
  echo ans.min() + (dispose + 1) div 2
else: # 410 => 121
  let
    A2 = A & newSeqWith(target.len - A.len,0)
    diff = A2.zip(target).mapIt(abs(it.a-it.b))
    ans = diff.sum() div 2 + (dispose + 1) div 2
  echo ans
0