結果
問題 | No.3031 曲面の向き付け |
ユーザー |
![]() |
提出日時 | 2025-02-21 23:15:16 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,426 bytes |
コンパイル時間 | 4,948 ms |
コンパイル使用メモリ | 82,224 KB |
実行使用メモリ | 204,080 KB |
最終ジャッジ日時 | 2025-02-21 23:15:40 |
合計ジャッジ時間 | 17,390 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 27 WA * 2 |
ソースコード
from collections import defaultdictfrom collections import dequeM=int(input())dic=defaultdict(list)dat=[]l=[[] for _ in range(M)]for i in range(M):A,B,C=map(int,input().split())dat.append((A,B,C))l[i]=[[A,B],[B,C],[C,A]]dic[(A,B)].append(i)dic[(B,C)].append(i)dic[(A,C)].append(i)edge=[[] for _ in range(M)]for k in dic.keys():if len(dic[k]) >= 3:print("NO")exit()if len(dic[k]) == 1:continuep=dic[k][0]p2=dic[k][1]se=set(dat[p])&set(dat[p2])if len(l)==3:sel=list(se)use = [[sel[0],sel[1]],[sel[1],sel[2]],[sel[2],sel[0]]]else:sel=list(se)use = [[sel[0],sel[1]]]for a,b in use:#print(a,b,l[p],l[p2],int([a,b] in l[p] ),int( [a,b] in l[p2]))if int([a,b] in l[p] )^int( [a,b] in l[p2])==0:edge[p].append((p2,-1))edge[p2].append((p,-1))else:edge[p].append((p2,1))edge[p2].append((p,1))di=[0 for _ in range(M)]for i in range(M):if di[i]==0:di[0]=1dq=deque([0])while len(dq)!=0:p = dq.popleft()for e,o in edge[p]:if di[e]==0:di[e]=di[p]*odq.append(e)else:if di[e]!=di[p]*o:print("NO")exit()print("YES")