結果

問題 No.1242 高橋君とすごろく
ユーザー FromBooskaFromBooska
提出日時 2023-09-05 11:51:09
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,315 bytes
コンパイル時間 170 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 80,768 KB
最終ジャッジ日時 2024-06-23 07:28:42
合計ジャッジ時間 4,421 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 6 TLE * 1 -- * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

# すごろくだしゴールから戻っていくか
# そのマスがOKかどうかの判定、1or6, 2or5, 3or4先のすべてが止まれればOKマス
# 戻っていってスタートの1がOKならYes
# コンセプトはそれでいいがN10**18は巨大すぎる
# ただしK<100なのでここは相当非効率でも間に合う

N, K = map(int, input().split())
A = list(map(int, input().split()))
A_set = set(A)

ans = 'Yes'
while A:
    largest = A.pop()
    if largest == 1:
        ans = 'No'
        break
    
    if largest-5 in A:
        if largest-6 >= 1 and largest-6 not in A:
            A.append(largest-6)
    if largest-3 in A:
        if largest-5 >= 1 and largest-5 not in A:
            A.append(largest-5)
    if largest-1 in A:
        if largest-4 >= 1 and largest-4 not in A:
            A.append(largest-4)
           
    # 上でNGとしたものを踏まえて加えるNGがないかチェック
    if largest-5 in A:
        if largest-6 >= 1 and largest-6 not in A:
            A.append(largest-6)
    if largest-3 in A:
        if largest-5 >= 1 and largest-5 not in A:
            A.append(largest-5)
    if largest-1 in A:
        if largest-4 >= 1 and largest-4 not in A:
            A.append(largest-4)
    A.sort()
    #print('largest', largest, 'A', A)
    
print(ans)
0