Submission #845131

#TimeUsernameProblemLanguageResultExecution timeMemory
845131vjudge1Birmingham (COCI20_birmingham)C++17
70 / 70
83 ms11268 KiB
#include <bits/stdc++.h>
#define fast cin.tie(0)->sync_with_stdio(0);
#define int long long
#define inf ((int)1e18)
#define N 100005
using namespace std;
bool vis[N];
int way[N];
vector <vector<int> > adj(N);

int32_t main(){
	fast
	int n, m, q, k;
	cin>>n>>m>>q>>k;
	queue <pair<int, int> > que;
	for(int i = 0; i < q; i++) {
		int in;
		cin>>in;
		que.push({in, 0});
		vis[in] = 1;
	}
	for(int i = 0; i < m; i++) {
		int a, b;
		cin>>a>>b;
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
	while(!que.empty()) {
		int node = que.front().first, dis = que.front().second;
		way[node] = dis;
		que.pop();
		for(auto it:adj[node]) {
			if(vis[it]) continue;
			vis[it] = 1;
			que.push({it, dis + 1});
		}
	}
	for(int i = 1; i <= n; i++) {
		int val = 0, tk = k;
		while(way[i] > 0) {
			way[i] -= tk;
			tk 	+= k;
			val++; 
		}
		cout<<val<<" ";
	}
}
#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...