結果
| 問題 |
No.366 ロボットソート
|
| コンテスト | |
| ユーザー |
t8m8⛄️
|
| 提出日時 | 2016-05-05 22:37:53 |
| 言語 | Nim (2.2.0) |
| 結果 |
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
t8m8⛄️