Submission #845071

#TimeUsernameProblemLanguageResultExecution timeMemory
845071vjudge1Birmingham (COCI20_birmingham)C++17
0 / 70
170 ms13472 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define endl "\n"
#define all(aa) aa.begin(), aa.end()

int main(){
	double k;
	ll n, m, qq;
	cin>>n>>m>>qq>>k;

	queue<pair<ll, ll>> q;
	for(ll i=0; i<qq; i++){
		ll a;
		cin>>a;
		q.push({a-1, 0});
	}

	vector<vector<ll>> g(n);
	for(ll i=0; i<m; i++){
		ll a, b;
		cin>>a>>b;
		a--; b--;

		g[a].push_back(b);
		g[b].push_back(a);
	}

	vector<ll> ans(n, -1);
	while(q.size()){
		auto[v, d]=q.front();
		q.pop();

		if(ans[v]!=-1) continue;
		cout<<v<<' '<<d<<endl;
		ans[v]=ceil((sqrt(k*k/4+2*k*d)-k/2)/k);

		for(auto ch:g[v])
			if(ans[v]!=-1) q.push({ch, d+1});
	}
	for(auto e:ans) cout<<e<<' ';
}
#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...