結果
| 問題 | No.1594 Three Classes | 
| コンテスト | |
| ユーザー |  Kiri8128 | 
| 提出日時 | 2021-07-09 22:49:02 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 118 ms / 2,000 ms | 
| コード長 | 915 bytes | 
| コンパイル時間 | 482 ms | 
| コンパイル使用メモリ | 82,296 KB | 
| 実行使用メモリ | 76,032 KB | 
| 最終ジャッジ日時 | 2024-11-16 08:20:32 | 
| 合計ジャッジ時間 | 2,520 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 18 | 
ソースコード
# D
def chk(i):
    # NG のとき 1 を返す
    return 0
N = int(input())
E = [int(a) for a in input().split()]
K = N
Z = [0] * K
R = [0] * K
Z[0], R[0] = 0, 3 # 半開区間 [Start, End)
i = 0
cnt = 0 # Debug 用
while i >= 0:
    ng = 0
    while i < K - 1:
        i += 1
        Z[i] = 0 # Start
        R[i] = 3 # End
        if chk(i):
            ng = 1
            break
    
    if not ng:
        ### ここに処理を書く
        # if cnt < 30:
        #     print("Z =", cnt, Z)
        P = [0] * 3
        cnt += 1
        for i, z in enumerate(Z):
            P[z] += E[i]
        if P[0] == P[1] == P[2]:
            print("Yes")
            exit()
        ###
    
    Z[i] += 1
    while Z[i] >= R[i] or chk(i):
        if Z[i] < R[i]: Z[i] += 1
        while Z[i] >= R[i]:
            i -= 1
            if i < 0: break
            Z[i] += 1
        if i < 0: break
# print(cnt)
print("No")
            
            
            
        