Submission #65045

# Submission time Handle Problem Language Result Execution time Memory
65045 2018-08-06T13:44:58 Z bazsi700 007 (CEOI14_007) C++14
30 / 100
499 ms 17372 KB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,m,s,d,a,b;
    cin >> n >> m >> s >> d >> a >> b;
    vector<vector<int> > graph(n+1,vector<int>());
    for(int i = 0; i < m; i++) {
        int x,y;
        cin >> x >> y;
        graph[x].push_back(y);
        graph[y].push_back(x);
    }
    vector<bool> wass(n+1,false);
    vector<int> dists(n+1,0);
    vector<bool> wasd(n+1,false);
    vector<int> distd(n+1,0);
    vector<bool> wasa(n+1,false);
    vector<int> dista(n+1,0);
    vector<bool> wasb(n+1,false);
    vector<int> distb(n+1,0);
    wass[s] = true;
    queue<int> q;
    q.push(s);
    while(!q.empty()) {
        int v = q.front();
        q.pop();
        for(int u : graph[v]) {
            if(!wass[u]) {
                wass[u] = true;
                q.push(u);
                dists[u] = dists[v]+1;
            }
        }
    }
    wasd[d] = true;
    q.push(d);
    while(!q.empty()) {
        int v = q.front();
        q.pop();
        for(int u : graph[v]) {
            if(!wasd[u]) {
                wasd[u] = true;
                q.push(u);
                distd[u] = distd[v]+1;
            }
        }
    }
    wasa[a] = true;
    q.push(a);
    while(!q.empty()) {
        int v = q.front();
        q.pop();
        for(int u : graph[v]) {
            if(!wasa[u]) {
                wasa[u] = true;
                q.push(u);
                dista[u] = dista[v]+1;
            }
        }
    }
    wasb[b] = true;
    q.push(b);
    while(!q.empty()) {
        int v = q.front();
        q.pop();
        for(int u : graph[v]) {
            if(!wasb[u]) {
                wasb[u] = true;
                q.push(u);
                distb[u] = distb[v]+1;
            }
        }
    }
    if(dists[a] == dists[b] && distd[a] == distd[b]) {
        int mxdistda = -1;
        int mxdistdb = -1;
        int mxdistsa = -1;
        int mxdistsb = -1;
        for(int i = 1; i <= n; i++) {
            //if(dista[i] == distb[i]) {
                if(dista[i]+distd[i] == distd[a]) {
                    mxdistda = max(mxdistda,dista[i]);
                }
                if(distb[i]+distd[i] == distd[b]) {
                    mxdistdb = max(mxdistdb,distb[i]);
                }
                if(dista[i]+dists[i] == dists[a]) {
                    mxdistsa = max(mxdistsa,dista[i]);
                }
                if(distb[i]+dists[i] == dists[b]) {
                    mxdistsb = max(mxdistsb,distb[i]);
                }
            //}
        }
        if(mxdistsa < mxdistda || mxdistsb < mxdistdb) {
            cout << max(min(distd[a]-dists[a],distd[b]-dists[b])-1,-1);
        } else {
            cout << max(min(distd[a]-dists[a],distd[b]-dists[b]),-1);
        }
    } else {
        cout << max(min(distd[a]-dists[a],distd[b]-dists[b]),-1);
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 2 ms 488 KB Output is correct
3 Correct 3 ms 488 KB Output is correct
4 Correct 3 ms 488 KB Output is correct
5 Correct 3 ms 532 KB Output is correct
6 Partially correct 3 ms 532 KB Partially correct
7 Partially correct 2 ms 540 KB Partially correct
8 Correct 3 ms 572 KB Output is correct
9 Partially correct 3 ms 572 KB Partially correct
10 Correct 3 ms 596 KB Output is correct
11 Correct 2 ms 596 KB Output is correct
12 Correct 2 ms 596 KB Output is correct
13 Partially correct 2 ms 596 KB Partially correct
14 Correct 2 ms 596 KB Output is correct
15 Partially correct 2 ms 596 KB Partially correct
16 Correct 4 ms 600 KB Output is correct
17 Correct 3 ms 724 KB Output is correct
18 Correct 2 ms 724 KB Output is correct
19 Partially correct 2 ms 724 KB Partially correct
20 Partially correct 3 ms 724 KB Partially correct
21 Correct 3 ms 724 KB Output is correct
22 Partially correct 4 ms 724 KB Partially correct
23 Partially correct 3 ms 724 KB Partially correct
24 Correct 3 ms 724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 53 ms 3556 KB Partially correct
2 Correct 50 ms 4748 KB Output is correct
3 Partially correct 58 ms 4748 KB Partially correct
4 Correct 58 ms 5088 KB Output is correct
5 Correct 36 ms 5088 KB Output is correct
6 Correct 35 ms 5088 KB Output is correct
7 Partially correct 52 ms 5088 KB Partially correct
8 Partially correct 69 ms 5088 KB Partially correct
9 Correct 60 ms 5088 KB Output is correct
10 Partially correct 296 ms 9224 KB Partially correct
11 Correct 89 ms 9224 KB Output is correct
12 Partially correct 176 ms 9224 KB Partially correct
13 Correct 96 ms 9224 KB Output is correct
14 Correct 96 ms 9224 KB Output is correct
15 Partially correct 173 ms 9224 KB Partially correct
16 Correct 145 ms 9224 KB Output is correct
17 Partially correct 128 ms 9224 KB Partially correct
18 Correct 157 ms 9224 KB Output is correct
19 Partially correct 200 ms 9612 KB Partially correct
20 Correct 351 ms 12664 KB Output is correct
21 Correct 231 ms 12664 KB Output is correct
22 Partially correct 182 ms 12664 KB Partially correct
23 Correct 166 ms 12664 KB Output is correct
24 Partially correct 187 ms 12664 KB Partially correct
25 Correct 182 ms 12664 KB Output is correct
26 Correct 189 ms 12664 KB Output is correct
27 Partially correct 215 ms 12664 KB Partially correct
28 Partially correct 191 ms 12664 KB Partially correct
29 Partially correct 221 ms 12664 KB Partially correct
30 Correct 381 ms 13804 KB Output is correct
31 Correct 238 ms 13804 KB Output is correct
32 Partially correct 193 ms 13804 KB Partially correct
33 Correct 152 ms 13804 KB Output is correct
34 Correct 198 ms 13804 KB Output is correct
35 Correct 180 ms 13804 KB Output is correct
36 Correct 217 ms 13804 KB Output is correct
37 Correct 276 ms 14444 KB Output is correct
38 Partially correct 201 ms 14444 KB Partially correct
39 Partially correct 289 ms 14444 KB Partially correct
40 Correct 297 ms 15448 KB Output is correct
41 Partially correct 499 ms 17372 KB Partially correct