Submission #408841

#TimeUsernameProblemLanguageResultExecution timeMemory
408841SirCovidThe19thCrocodile's Underground City (IOI11_crocodile)C++14
100 / 100
564 ms87508 KiB
#include <bits/stdc++.h>
using namespace std;
 
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){
    vector<vector<pair<int, int>>> adj(n);
    for (int i = 0; i < m; i++){
        adj[r[i][0]].push_back({r[i][1], l[i]});
        adj[r[i][1]].push_back({r[i][0], l[i]});
    }
    priority_queue<pair<long long, int>> trav;
    vector<int> visited(n, 0);
    for (int i = 0; i < k; i++){
        visited[p[i]] = 1;
        trav.push({0, p[i]});
    }
    while (!trav.empty()){
        pair<long long, int> curr = trav.top(); trav.pop();
        visited[curr.second]++;
        if (visited[curr.second] == 2 and curr.second == 0) 
            return -curr.first;
        if (visited[curr.second] == 2)
            for (pair<int, int> elem : adj[curr.second])
                if (visited[elem.first] != 2)
                    trav.push({curr.first-elem.second, elem.first});
    }
}

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:5:41: warning: control reaches end of non-void function [-Wreturn-type]
    5 |     vector<vector<pair<int, int>>> adj(n);
      |                                         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...