結果
問題 | No.2277 Honest or Dishonest ? |
ユーザー | とりゐ |
提出日時 | 2023-04-21 23:05:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 266 ms / 2,000 ms |
コード長 | 560 bytes |
コンパイル時間 | 459 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 92,800 KB |
最終ジャッジ日時 | 2024-11-08 06:42:30 |
合計ジャッジ時間 | 11,097 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
from sys import stdin input=lambda :stdin.readline()[:-1] n,q=map(int,input().split()) edge=[[] for i in range(n)] for _ in range(q): a,b,c=map(int,input().split()) a-=1 b-=1 edge[a].append((b,c)) edge[b].append((a,c)) seen=[-1]*n mod=998244353 ans=1 for i in range(n): if seen[i]!=-1: continue seen[i]=0 todo=[i] while todo: v=todo.pop() for u,c in edge[v]: if seen[u]==-1: seen[u]=seen[v]^c todo.append(u) elif seen[v]^c!=seen[u]: print(0) exit() ans*=2 ans%=mod print(ans%mod)