Submission #1273447

#TimeUsernameProblemLanguageResultExecution timeMemory
1273447zuz14Crocodile's Underground City (IOI11_crocodile)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h>
#include "crocodile.h"
#define F first
#define S second
using namespace std;
    
vector<pair<int, int>> g[100007];
int times[100007];

int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){
    priority_queue<pair<long long, int>> q;
    int dist;
    int v;

    for (int i=0; i<m; i++) {g[r[i][0]].push_back({r[i][1], l[i]}); g[r[i][1]].push_back({r[i][0], l[i]});}
    for (int i=0; i<n; i++) ranges::sort(g[i]);
    for (int i=0; i<n; i++) times[i]=-1;

    for (int i=0; i<k; i++) q.push({p[i], 0});
    while (!q.empty()){
        dist=-q.top().F, v=q.top().S; q.pop();
        if (times[v]!=-1) continue;
        times[v]=dist;

        for (int i=1; i<g[v].size(); i++) if (times[g[v][i].F]==-1) q.push({-dist-g[v][i].S, g[v][i].F});
    }

    return times[0];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...