| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 713447 | That_Salamander | Crocodile's Underground City (IOI11_crocodile) | C++14 | 725 ms | 101536 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <map>
#include <set>
#include <queue>
#define FOR(var,bound) for(int var = 0; var < bound; var++)
#define FORB(var,lb,up) for (int var = lb; var < ub; var++)
#define FORR(var,bound) for(int var = bound-1; var >= 0; var--)
#define int long long
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef pair<int, int> pii;
vector<vector<pii>> conn;
vi a, b;
vector<bool> v;
signed travel_plan(signed n, signed m, signed R[][2], signed L[], signed k, signed P[]) {
    conn.resize(n);
    a.resize(n, 1000000000000ll);
    b.resize(n, 1000000000000ll);
    v.resize(n);
    for (int i = 0; i < m; i++) {
        int t, f, w;
        t = R[i][0];
        f = R[i][1];
        w = L[i];
        conn[t].push_back({f, w});
        conn[f].push_back({t, w});
    }
    priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;
    for (int i = 0; i < k; i++) {
        int x;
        x = P[i];
        q.push({0, x});
    }
    while (!q.empty()) {
        auto p = q.top(); q.pop();
        int cost = p.first;
        int room = p.second;
        if (room == 0) {
            return cost;
        }
        if (v[room]) continue;
        v[room] = true;
        for (auto c: conn[room]) {
            int to = c.first;
            int time = cost + c.second;
            if (a[to] > time) {
                b[to] = a[to];
                a[to] = time;
            } else if (b[to] > time) {
                b[to] = time;
            }
            q.push({b[to], to});
        }
    }
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
