結果
問題 |
No.3291 K-step Navigation
|
ユーザー |
|
提出日時 | 2025-10-03 22:36:52 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,749 bytes |
コンパイル時間 | 4,204 ms |
コンパイル使用メモリ | 255,652 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-10-03 22:37:01 |
合計ジャッジ時間 | 7,571 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 45 WA * 5 |
ソースコード
#include<iostream> #include<atcoder/all> #include<vector> #include<algorithm> #include<bits/stdc++.h> #include<math.h> #include <numeric> #include <random> #include<map> #include<queue> #include<deque> #include <bitset> #include<stack> #include<set> using namespace std; using namespace atcoder; #define int long long using mint=modint998244353; double pi=3.141592653589793128; //cout << fixed << setprecision(10); #define all(x) (x).begin(),(x).end() #define rep(i,n) for (int i=0;i<(n);++i) #define prep(i,n) for (int i=1;i<=(n);++i) #define ep(i,j,n) for (int i=j+1;i<=(n);++i) long long INF = 900000000000000; int mod=998244353; signed main(){ int n,m,k,s,t;cin>>n>>m>>k>>s>>t; s--;t--; vector<int> g[n]; int p=0; rep(i,m){ int u,v;cin>>u>>v;u--;v--; g[u].push_back(v); g[v].push_back(u); if(u==t && v==s)p=1; if(u==s && v==t)p=1; } int f=INF; int d[n]; int dd[n]; rep(i,n){ rep(j,n)d[j]=INF; rep(j,n)dd[j]=INF; d[i]=0; queue<int> q; q.push(i); while(!q.empty()){ int pos=q.front();q.pop(); for(int to:g[pos]){ if((d[to]>dd[pos]+1 && (dd[pos]+1)%2==0)){q.push(to);d[to]=dd[pos]+1;} if(dd[to]>d[pos]+1 && (d[pos]+1)%2==1){ q.push(to); dd[to]=d[pos]+1; //if(to==i && dd[to]==1)cout<<pos<<" "<<i<<" "<<d[pos]<<" "<<d[i]<<endl; } } } //rep(i,n){cout<<d[i]<<" ";}cout<<endl; //if(dd[i]==1)cout<<i<<endl; if(dd[i]!=INF) f=min(f,dd[i]); } if(g[s].size()==0 && g[t].size()==0 && k%2==0){cout<<"No";return 0;} if(p==1){ //cout<<f<<endl; if(g[s].size()==1 && g[t].size()==1 && k%2==0 && f+2+1>k){cout<<"No";return 0;} } cout<<"Yes"; }