結果
問題 | No.366 ロボットソート |
ユーザー | t8m8⛄️ |
提出日時 | 2016-05-05 22:37:53 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,015 bytes |
コンパイル時間 | 961 ms |
コンパイル使用メモリ | 66,532 KB |
最終ジャッジ日時 | 2024-11-14 19:43:13 |
合計ジャッジ時間 | 1,550 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 39) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated] /home/judge/data/code/Main.nim(43, 21) Error: undeclared identifier: 'lc'
ソースコード
import strutils, sequtils, algorithm, future let input = stdin.readline.split.map(parseint) (n, k) = (input[0], input[1]) var a = stdin.readline.split.map(parseint) aIdx : seq[int] = @[] bit : seq[int] proc sum(idx : int) : int = var i = idx result = 0 while i > 0 : result += bit[i] i -= i and -i proc add(idx, val : int) = var i = idx while i <= n : bit[i] += val i += i and -i proc isOk : bool = let b = a.sorted(cmp[int]) for i, v in a : var idx = b.lowerbound(v) aIdx.add(idx + 1) if (idx - i).abs mod k != 0 : return false return true proc solve(b : seq[int]) : int = bit = repeat(0, 2*n+1) result = 0 for i, v in b : result += i - sum(v) add(v, 1) if isOk() : var ans = 0 for m in 0..k-1 : var b = map(lc[x | (x <- 0..a.len-1, x mod k == m), int], proc(x : int) : int = aIdx[x]) ans += b.solve ans.echo else : "-1".echo