結果

問題 No.1425 Yet Another Cyclic Shifts Sorting
ユーザー gew1fw
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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()
0