Submission #773391

# Submission time Handle Problem Language Result Execution time Memory
773391 2023-07-05T04:03:16 Z Jomnoi Shortcut (IOI16_shortcut) C++17
0 / 100
2000 ms 1620 KB
#include <bits/stdc++.h>
#include "shortcut.h"
using namespace std;

const int MAX_N = 6005;
const long long INF = 1e18 + 7;

int n;
set <pair <int, int>> graph[MAX_N];
long long dist[MAX_N][MAX_N];
bool visited[MAX_N];

void bfs(int s) {
    for (int i = 0; i < 2 * n; i++) {
        dist[s][i] = INF;
        visited[i] = false;
    }

    priority_queue <pair <long long, int>> pq;
    pq.emplace(0, s);
    dist[s][s] = 0;
    while (!pq.empty()) {
        auto [d, u] = pq.top();
        pq.pop();

        if (visited[u] == true) continue;
        visited[u] = true;

        for (auto [v, w] : graph[u]) {
            if (visited[v] == false and dist[s][u] + w < dist[s][v]) {
                dist[s][v] = dist[s][u] + w;
                pq.emplace(-dist[s][v], v);
            }
        }
    }
}

long long find_shortcut(int n, vector <int> l, vector <int> d, int c) {
    ::n = n;
    for (int i = 0; i < n - 1; i++) {
        graph[i].emplace(i + 1, l[i]);
        graph[i + 1].emplace(i, l[i]);
    }
    for (int i = 0; i < n; i++) {
        graph[i].emplace(n + i, d[i]);
        graph[n + i].emplace(i, d[i]);
    }

    long long ans = INF;
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            bool ok = false;

            if (!graph[i].count(make_pair(j, c))) {
                ok = true;
                graph[i].emplace(j, c);
                graph[j].emplace(i, c);
            }

            for (int i = 0; i < 2 * n; i++) bfs(i);
            long long max_dist = 0;
            for (int i = 0; i < 2 * n; i++) {
                for (int j = 0; j < 2 * n; j++) max_dist = max(max_dist, dist[i][j]);
            }

            ans = min(ans, max_dist);

            if (ok == true) {
                graph[i].erase(make_pair(j, c));
                graph[j].erase(make_pair(i, c));
            }
        }
    }
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB n = 4, 80 is a correct answer
2 Correct 1 ms 596 KB n = 9, 110 is a correct answer
3 Correct 1 ms 596 KB n = 4, 21 is a correct answer
4 Correct 1 ms 592 KB n = 3, 4 is a correct answer
5 Correct 1 ms 596 KB n = 2, 62 is a correct answer
6 Correct 1 ms 596 KB n = 2, 3 is a correct answer
7 Correct 1 ms 596 KB n = 3, 29 is a correct answer
8 Correct 1 ms 596 KB n = 2, 3 is a correct answer
9 Correct 1 ms 592 KB n = 2, 3 is a correct answer
10 Correct 1 ms 596 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 596 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 596 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 592 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 596 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 588 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 596 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 592 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 596 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 596 KB n = 5, 12 is a correct answer
21 Correct 1 ms 596 KB n = 5, 25 is a correct answer
22 Correct 1 ms 588 KB n = 2, 122 is a correct answer
23 Correct 2 ms 596 KB n = 10, 117 is a correct answer
24 Correct 1 ms 596 KB n = 10, 336 is a correct answer
25 Correct 1 ms 676 KB n = 10, 438 is a correct answer
26 Correct 1 ms 596 KB n = 10, 206 is a correct answer
27 Correct 1 ms 596 KB n = 10, 636 is a correct answer
28 Correct 1 ms 596 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 596 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 596 KB n = 10, 3112 is a correct answer
31 Execution timed out 2078 ms 1620 KB Time limit exceeded
32 Halted 0 ms 0 KB -