結果
問題 | No.2518 Adjacent Larger |
ユーザー | miya145592 |
提出日時 | 2023-10-27 23:16:20 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 147 ms / 2,000 ms |
コード長 | 1,212 bytes |
コンパイル時間 | 255 ms |
コンパイル使用メモリ | 82,140 KB |
実行使用メモリ | 102,400 KB |
最終ジャッジ日時 | 2024-09-25 15:14:20 |
合計ジャッジ時間 | 3,838 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 28 |
ソースコード
import sys input = sys.stdin.readline T = int(input()) for _ in range(T): N = int(input()) A = list(map(int, input().split())) j = -1 for i in range(N): if A[i]==2: j = i break if j==-1: print("No") continue in_deg = [0 for _ in range(N)] flag = True for ii in range(N): i = (ii+j)%N pre = (i-1)%N nxt = (i+1)%N if A[i]==2: if in_deg[pre]+A[pre]>=2 or in_deg[nxt]+A[nxt]>=2: flag = False break in_deg[pre]+=1 in_deg[nxt]+=1 elif A[i]==1: if in_deg[pre]+A[pre]>=2: if in_deg[nxt]+A[nxt]>=2: flag = False break else: in_deg[nxt]+=1 else: in_deg[pre]+=1 for i in range(N): if A[i]+in_deg[i]!=2: flag = False break if flag: flag = False for i in range(N): if A[i]!=1: flag = True break if flag: print("Yes") else: print("No") else: print("No")