제출 #238536

#제출 시각아이디문제언어결과실행 시간메모리
238536SalitoBirmingham (COCI20_birmingham)C++14
0 / 70
1124 ms462720 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; bool used[maxn]; 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(!used[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; used[a[i]]=true; } while(!gq.empty()) { int t = gq.front(); gq.pop(); dfs(t,k*ans[t],t); used[t]=true; } } void print() { int i; for(i=1;i<=n;i++) cout<<ans[i]-1<<" "; cout<<endl; } int main() { read(); bfs_solve(); print(); return 0; } /* 6 5 1 1 1 2 2 3 3 5 5 4 4 6 */
#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...