제출 #1162532

#제출 시각아이디문제언어결과실행 시간메모리
1162532NewtonabcBirmingham (COCI20_birmingham)C++17
0 / 70
82 ms19520 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=4e5+10;
int d[N],tb[N];
bool vs[N];
vector<int> adj[N];
queue<int> q;
signed main(){
    int n,m,qq,k,mx;
    cin>>n >>m >>qq >>k;
    tb[0]=0;
    for(int i=1;i<=3e5;i++){
        tb[i]=tb[i-1]+(k*i);
        mx=max(i,mx);
    }
    for(int i=0;i<qq;i++){
        int inp;
        cin>>inp;
        vs[inp]=true;
        q.push(inp);
    }
    for(int i=0;i<m;i++){
        int u,v;
        cin>>u >>v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    while(!q.empty()){
        int u=q.front();
        q.pop();
        for(auto v:adj[u]){
            if(vs[v]) continue;
            vs[v]=true;
            q.push(v);
            d[v]=d[u]+1;
        }
    }
    for(int i=1;i<=n;i++){
        int ind=lower_bound(tb,tb+mx,d[i])-tb;
        cout<<ind <<" ";
    }
    
}
#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...