結果
| 問題 | No.3775 Distant Swap |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-10-24 15:09:27 |
| 言語 | PyPy3 (8.0.1 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 62 ms / 2,000 ms |
| + 912µs | |
| コード長 | 915 bytes |
| 記録 | |
| コンパイル時間 | 81 ms |
| コンパイル使用メモリ | 64,596 KB |
| 実行使用メモリ | 65,604 KB |
| 最終ジャッジ日時 | 2026-10-24 15:09:31 |
| 合計ジャッジ時間 | 3,630 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
# https://yukicoder.me/problems/no/3775
def main():
N, K = map(int, input().split())
P = list(map(int, input().split()))
array = [[] for _ in range(K)]
for i in range(N):
array[i % K].append(P[i])
answer = []
for k in range(K):
ar = array[k]
for i in range(len(ar)):
j = i
while j > 0 and ar[j - 1] > ar[j]:
answer.append(((j - 1) * K + k, j * K + k))
tmp = ar[j - 1]
ar[j - 1 ] = ar[j]
ar[j] = tmp
j -= 1
ans_array = []
for index in range(N):
ans_array.append(array[index % K][index // K])
for i in range(N - 1):
if ans_array[i] > ans_array[i + 1]:
print(-1)
return
print(len(answer))
for i, j in answer:
print(i + 1, j + 1)
if __name__ == "__main__":
main()