結果
問題 |
No.2674 k-Walk on Bipartite
|
ユーザー |
![]() |
提出日時 | 2025-03-03 05:24:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 559 ms / 2,000 ms |
コード長 | 955 bytes |
コンパイル時間 | 598 ms |
コンパイル使用メモリ | 82,820 KB |
実行使用メモリ | 112,944 KB |
最終ジャッジ日時 | 2025-03-03 05:25:02 |
合計ジャッジ時間 | 9,480 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
n,m=map(int,input().split()) start,goal,k=map(int,input().split()) start-=1 goal-=1 e=[[] for i in range(n)] for i in range(m): a,b=map(int,input().split()) a-=1 b-=1 e[a]+=[b] e[b]+=[a] v=[-1]*n c=0 for i in range(n): if v[i]==-1: q=[i] v[i]=c for s in q: for t in e[s]: if v[t]==-1: q+=[t] v[t]=v[s]^1 c+=2 if start==goal: if k%2==0: if len(e[start])>0 or k==0: print("Yes") else: if n==1: print("No") else: print("Unknown") else: print("No") else: if v[start]//2!=v[goal]//2: if n==2 and k%2==0: print("No") else: print("Unknown") else: v=[-1]*n q=[start] v[start]=0 for s in q: for t in e[s]: if v[t]==-1: q+=[t] v[t]=v[s]+1 if (v[start]-v[goal])%2!=k%2: print("No") else: if v[goal]<=k: print("Yes") else: print("Unknown")