結果
問題 |
No.1425 Yet Another Cyclic Shifts Sorting
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:55:26 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 910 bytes |
コンパイル時間 | 261 ms |
コンパイル使用メモリ | 82,320 KB |
実行使用メモリ | 264,812 KB |
最終ジャッジ日時 | 2025-06-12 19:56:17 |
合計ジャッジ時間 | 6,348 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 TLE * 1 -- * 22 |
ソースコード
def main(): import sys n, *rest = map(int, sys.stdin.read().split()) a = rest[:n] sorted_a = sorted(a) if a == sorted_a: print(0) return # 找出目标数组的后缀是否正确 m = n while m > 0 and a[m-1] == sorted_a[m-1]: m -= 1 k = m if k == 0: # 整个数组都正确 print(0) return # 检查前k个元素是否是循环排列 temp_a = a[:k] temp_b = sorted_a[:k] # 判断temp_a是否是temp_b的一个循环移位 # 将temp_b重复两次,检查temp_a是否是子数组 double_b = temp_b + temp_b found = False for i in range(k): if double_b[i:i+k] == temp_a: found = True break if found: print(1) return # 如果没有找到满足条件的k,则需要购买两种工具 print(2) if __name__ == "__main__": main()