結果

問題 No.1884 Sequence
ユーザー gew1fw
提出日時 2025-06-12 20:47:31
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 980 bytes
コンパイル時間 169 ms
コンパイル使用メモリ 81,788 KB
実行使用メモリ 151,036 KB
最終ジャッジ日時 2025-06-12 20:49:12
合計ジャッジ時間 6,583 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 35 WA * 3 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
from math import gcd

def main():
    N, *rest = list(map(int, sys.stdin.read().split()))
    A = rest[:N]
    F = [a for a in A if a != 0]
    
    if len(F) <= 1:
        print("Yes")
        return
    
    # Check if all elements in F are equal
    all_equal = True
    first = F[0]
    for x in F[1:]:
        if x != first:
            all_equal = False
            break
    if all_equal:
        print("Yes")
        return
    
    F.sort()
    diffs = []
    for i in range(1, len(F)):
        diffs.append(F[i] - F[i-1])
    
    current_gcd = diffs[0]
    for d in diffs[1:]:
        current_gcd = gcd(current_gcd, d)
        if current_gcd == 0:
            break
    
    for d in diffs:
        if d % current_gcd != 0:
            print("No")
            return
    
    min_f = F[0]
    max_f = F[-1]
    t = (max_f - min_f) // current_gcd
    
    if t > N - 1:
        print("No")
    else:
        print("Yes")

if __name__ == "__main__":
    main()
0