Submission #1164174

#TimeUsernameProblemLanguageResultExecution timeMemory
1164174KhoaDuyBoard Game (JOI24_boardgame)C++17
3 / 100
23 ms4492 KiB
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
vector<int> dijik(int n,vector<vector<int>> &graph,vector<int> &init){
    vector<int> bst(n+1);
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq;
    for(int i=1;i<=n;i++){
        pq.push({init[i],i});
        bst[i]=init[i];
    }
    while(!pq.empty()){
        int u=pq.top().second,dist=pq.top().first;
        pq.pop();
        if(dist>bst[u]){
            continue;
        }
        for(int v:graph[u]){
            if(bst[v]>dist+1){
                bst[v]=dist+1;
                pq.push({bst[v],v});
            }
        }
    }
    return bst;
}
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m,k;
    cin >> n >> m >> k;
    vector<vector<int>> graph(n+1);
    for(int i=0;i<m;i++){
        int u,v;
        cin >> u >> v;
        graph[u].push_back(v);
        graph[v].push_back(u);
    }
    string s;
    cin >> s;
    int x[k];
    vector<int> init(n+1);
    for(int i=1;i<=n;i++){
        init[i]=1e9;
    }
    for(int i=0;i<k;i++){
        cin >> x[i];
    }
    init[x[0]]=0;
    vector<int> bst=dijik(n,graph,init);
    for(int i=1;i<=n;i++){
        cout << bst[i] << endl;
    }
}
#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...