Submission #65050

# Submission time Handle Problem Language Result Execution time Memory
65050 2018-08-06T13:49:05 Z bazsi700 007 (CEOI14_007) C++14
30 / 100
428 ms 17404 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 mxdistd = -1;
            int mxdists = -1;
            for(int i = 1; i <= n; i++) {
              //  if(dista[i] == distb[i]) {
                    if(dista[i]+distd[i] == distd[a]) {
                        mxdistd = max(mxdistd,dista[i]);
                    }
                    if(dista[i]+dists[i] == dists[a]) {
                        mxdists = max(mxdists,dista[i]);
                    }
              //  }
            }
            if(mxdists < mxdistd) {
                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 380 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 3 ms 432 KB Output is correct
4 Correct 3 ms 432 KB Output is correct
5 Correct 2 ms 468 KB Output is correct
6 Partially correct 2 ms 468 KB Partially correct
7 Partially correct 2 ms 516 KB Partially correct
8 Correct 3 ms 544 KB Output is correct
9 Partially correct 3 ms 544 KB Partially correct
10 Correct 3 ms 544 KB Output is correct
11 Correct 2 ms 544 KB Output is correct
12 Correct 3 ms 544 KB Output is correct
13 Partially correct 2 ms 592 KB Partially correct
14 Correct 3 ms 592 KB Output is correct
15 Partially correct 3 ms 592 KB Partially correct
16 Correct 3 ms 592 KB Output is correct
17 Correct 4 ms 640 KB Output is correct
18 Correct 3 ms 640 KB Output is correct
19 Partially correct 3 ms 720 KB Partially correct
20 Partially correct 3 ms 740 KB Partially correct
21 Correct 2 ms 740 KB Output is correct
22 Partially correct 3 ms 740 KB Partially correct
23 Partially correct 3 ms 740 KB Partially correct
24 Correct 3 ms 740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 30 ms 3436 KB Partially correct
2 Correct 67 ms 4784 KB Output is correct
3 Partially correct 38 ms 4784 KB Partially correct
4 Correct 63 ms 5084 KB Output is correct
5 Correct 34 ms 5084 KB Output is correct
6 Correct 40 ms 5084 KB Output is correct
7 Partially correct 43 ms 5084 KB Partially correct
8 Partially correct 53 ms 5084 KB Partially correct
9 Correct 72 ms 5084 KB Output is correct
10 Partially correct 253 ms 9160 KB Partially correct
11 Correct 114 ms 9160 KB Output is correct
12 Partially correct 149 ms 9160 KB Partially correct
13 Correct 116 ms 9160 KB Output is correct
14 Correct 100 ms 9160 KB Output is correct
15 Partially correct 183 ms 9160 KB Partially correct
16 Correct 123 ms 9192 KB Output is correct
17 Partially correct 120 ms 9192 KB Partially correct
18 Correct 99 ms 9192 KB Output is correct
19 Partially correct 177 ms 9580 KB Partially correct
20 Correct 330 ms 12712 KB Output is correct
21 Correct 177 ms 12712 KB Output is correct
22 Partially correct 169 ms 12712 KB Partially correct
23 Correct 181 ms 12712 KB Output is correct
24 Partially correct 191 ms 12712 KB Partially correct
25 Correct 181 ms 12712 KB Output is correct
26 Correct 179 ms 12712 KB Output is correct
27 Partially correct 198 ms 12712 KB Partially correct
28 Partially correct 245 ms 12712 KB Partially correct
29 Partially correct 362 ms 12712 KB Partially correct
30 Correct 384 ms 13692 KB Output is correct
31 Correct 222 ms 13692 KB Output is correct
32 Partially correct 175 ms 13692 KB Partially correct
33 Correct 228 ms 13692 KB Output is correct
34 Correct 192 ms 13692 KB Output is correct
35 Correct 152 ms 13692 KB Output is correct
36 Correct 164 ms 13692 KB Output is correct
37 Correct 188 ms 14464 KB Output is correct
38 Partially correct 241 ms 14464 KB Partially correct
39 Partially correct 262 ms 14464 KB Partially correct
40 Correct 342 ms 15480 KB Output is correct
41 Partially correct 428 ms 17404 KB Partially correct