Submission #238522

#TimeUsernameProblemLanguageResultExecution timeMemory
238522SalitoBirmingham (COCI20_birmingham)C++14
0 / 70
266 ms8664 KiB
#include<bits/stdc++.h> using namespace std; int const maxn = 100005; int n,m,q,k; int a[maxn]; vector<int>v[maxn]; void read() { int i; cin>>n>>m>>q>>k; for(i=0;i<q;i++) cin>>a[i]; int x,y; for(i=0;i<m;i++) { cin>>x>>y; v[x].push_back(y); v[y].push_back(x); } } int ans[maxn]; queue<int>gq; void dfs(int i, int d, int p) { if(d == 0)return ; int j,sz=v[i].size(); for(j=0;j<sz;j++) { int nb = v[i][j]; if(!ans[nb]) { gq.push(nb); ans[nb] = ans[p]+1; dfs(nb,d-1,p); } } } void bfs_solve() { int i; for(i=0;i<q;i++) { gq.push(a[i]); ans[a[i]] = 1; } while(!gq.empty()) { int t = gq.front(); gq.pop(); dfs(t,k*ans[t],t); } } void print() { int i; for(i=1;i<=n;i++) cout<<ans[i]-1<<" "; cout<<endl; } int main() { read(); bfs_solve(); print(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...