Submission #793355

# Submission time Handle Problem Language Result Execution time Memory
793355 2023-07-25T18:17:41 Z Valaki2 007 (CEOI14_007) C++14
0 / 100
162 ms 17484 KB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

const int maxn = 2e5;

int n, m;
vector<int> graph[1 + maxn];
int g, s, a, b;
vector<int> dg, ds, da, db;

vector<int> bfs(int start) {
    vector<int> res(1 + n, -1);
    res[start] = 0;
    queue<int> q;
    q.push(start);
    while(!q.empty()) {
        int cur = q.front();
        q.pop();
        for(int nei : graph[cur]) {
            if(res[nei] == -1) {
                res[nei] = res[cur] + 1;
                q.push(nei);
            }
        }
    }
    return res;
}

void solve() {
    cin >> n >> m;
    cin >> g >> s >> a >> b;
    for(int i = 0; i < m; i++) {
        int x, y;
        cin >> x >> y;
        graph[x].pb(y);
        graph[y].pb(x);
    }
    dg = bfs(g), ds = bfs(s), da = bfs(a), db = bfs(b);
    if((da[s] < da[g]) || (db[s] < db[g])) {
        cout << "-1\n";
        return;
    }
    int add_a = da[s] - 1 - da[g], add_b = db[s] - 1 - db[g];
    bool extra_case = true;
    if(add_a != add_b) {
        add_a++, add_b++;
        extra_case = false;
    }
    int to_add = min(add_a, add_b);
    if(!extra_case) {
        cout << to_add << "\n";
        return;
    }
    to_add++;
    da[s] += to_add;
    db[s] += to_add;
    int closest_g = n + 1, closest_s = n + 1;
    if(da[s] != db[s] || da[g] != db[g]) {
        exit(1);
    }
    for(int cur = 1; cur <= n; cur++) {
        int dab = max(da[cur], db[cur]);
        if(dab + closest_g == max(da[g], db[g])) {
            closest_g = min(closest_g, dab);
        }
        if(dab + closest_s == max(da[s], db[s])) {
            closest_s = min(closest_s, dab);
        }
    }
    if(closest_s < closest_g) {
        to_add--;
    }
    cout << to_add << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Runtime error 2 ms 4948 KB Execution failed because the return code was nonzero
3 Correct 2 ms 4948 KB Output is correct
4 Incorrect 2 ms 4948 KB Output isn't correct
5 Incorrect 2 ms 4948 KB Output isn't correct
6 Correct 2 ms 4948 KB Output is correct
7 Correct 2 ms 4948 KB Output is correct
8 Incorrect 2 ms 4948 KB Output isn't correct
9 Correct 2 ms 4948 KB Output is correct
10 Correct 2 ms 4948 KB Output is correct
11 Correct 2 ms 4948 KB Output is correct
12 Incorrect 2 ms 4948 KB Output isn't correct
13 Correct 2 ms 4948 KB Output is correct
14 Incorrect 2 ms 4948 KB Output isn't correct
15 Correct 2 ms 4948 KB Output is correct
16 Incorrect 2 ms 4948 KB Output isn't correct
17 Incorrect 3 ms 4948 KB Output isn't correct
18 Incorrect 2 ms 4948 KB Output isn't correct
19 Correct 2 ms 4984 KB Output is correct
20 Correct 3 ms 4948 KB Output is correct
21 Correct 2 ms 4948 KB Output is correct
22 Correct 2 ms 4948 KB Output is correct
23 Correct 2 ms 4948 KB Output is correct
24 Incorrect 2 ms 4948 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 6868 KB Output is correct
2 Incorrect 16 ms 7764 KB Output isn't correct
3 Correct 15 ms 6984 KB Output is correct
4 Incorrect 17 ms 7892 KB Output isn't correct
5 Correct 14 ms 6740 KB Output is correct
6 Correct 13 ms 7136 KB Output is correct
7 Correct 16 ms 7244 KB Output is correct
8 Correct 16 ms 7228 KB Output is correct
9 Incorrect 25 ms 7680 KB Output isn't correct
10 Correct 108 ms 12124 KB Output is correct
11 Incorrect 28 ms 9268 KB Output isn't correct
12 Correct 39 ms 10328 KB Output is correct
13 Incorrect 31 ms 9556 KB Output isn't correct
14 Correct 25 ms 8804 KB Output is correct
15 Correct 34 ms 10368 KB Output is correct
16 Correct 38 ms 10700 KB Output is correct
17 Correct 31 ms 10068 KB Output is correct
18 Incorrect 34 ms 10088 KB Output isn't correct
19 Correct 70 ms 11328 KB Output is correct
20 Incorrect 114 ms 14084 KB Output isn't correct
21 Incorrect 46 ms 12588 KB Output isn't correct
22 Correct 44 ms 11448 KB Output is correct
23 Runtime error 45 ms 12420 KB Execution failed because the return code was nonzero
24 Correct 45 ms 12384 KB Output is correct
25 Incorrect 44 ms 11892 KB Output isn't correct
26 Runtime error 41 ms 11604 KB Execution failed because the return code was nonzero
27 Correct 47 ms 12492 KB Output is correct
28 Correct 54 ms 12448 KB Output is correct
29 Correct 80 ms 12948 KB Output is correct
30 Incorrect 123 ms 14924 KB Output isn't correct
31 Incorrect 60 ms 13656 KB Output isn't correct
32 Correct 55 ms 12436 KB Output is correct
33 Runtime error 57 ms 12740 KB Execution failed because the return code was nonzero
34 Incorrect 59 ms 13004 KB Output isn't correct
35 Incorrect 49 ms 12784 KB Output isn't correct
36 Incorrect 50 ms 13028 KB Output isn't correct
37 Correct 65 ms 14060 KB Output is correct
38 Correct 60 ms 13900 KB Output is correct
39 Correct 66 ms 13912 KB Output is correct
40 Incorrect 110 ms 15400 KB Output isn't correct
41 Correct 162 ms 17484 KB Output is correct