結果
| 問題 |
No.366 ロボットソート
|
| コンテスト | |
| ユーザー |
zombietan
|
| 提出日時 | 2016-06-07 08:08:53 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 167 ms / 2,000 ms |
| コード長 | 1,044 bytes |
| コンパイル時間 | 242 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 11,008 KB |
| 最終ジャッジ日時 | 2024-12-29 17:57:21 |
| 合計ジャッジ時間 | 1,903 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
import itertools
N, K = map(int, input().split())
block = list(map(int, input().split()))
count = 0
def sort(b):
global count
k = len(b) - 1
for i in range(k):
for j in range(k, i, -1):
if b[j - 1] > b[j]:
count += 1
temp = b[j]
b[j] = b[j - 1]
b[j - 1] = temp
return b
def is_sorted(result):
if len(result) == 1:
return True
m = 0
for e in result:
if e < m:
return False
m = e
return True
if N <= K:
if is_sorted(block):
print(0)
else:
print(-1)
else:
div = []
for start in range(K):
itr = itertools.islice(block, start, None, K)
div.append(list(itr))
sort_div = []
for d in div:
sort_div.append(sort(d))
done_swap = [list(z) for z in itertools.zip_longest(*sort_div)]
done_swap = [n for n in sum(done_swap,[]) if n != None]
if is_sorted(done_swap):
print(count)
else:
print(-1)
zombietan