답안 #65049

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
65049 2018-08-06T13:48:33 Z bazsi700 007 (CEOI14_007) C++14
24 / 100
548 ms 17364 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+1 < 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;
    }
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 252 KB Output is correct
2 Correct 2 ms 356 KB Output is correct
3 Correct 2 ms 392 KB Output is correct
4 Incorrect 2 ms 392 KB Output isn't correct
5 Incorrect 3 ms 468 KB Output isn't correct
6 Partially correct 3 ms 468 KB Partially correct
7 Partially correct 3 ms 468 KB Partially correct
8 Incorrect 3 ms 544 KB Output isn't correct
9 Partially correct 3 ms 544 KB Partially correct
10 Correct 3 ms 544 KB Output is correct
11 Correct 2 ms 620 KB Output is correct
12 Correct 2 ms 620 KB Output is correct
13 Partially correct 2 ms 620 KB Partially correct
14 Correct 2 ms 620 KB Output is correct
15 Partially correct 3 ms 620 KB Partially correct
16 Correct 3 ms 620 KB Output is correct
17 Correct 3 ms 620 KB Output is correct
18 Correct 3 ms 620 KB Output is correct
19 Partially correct 3 ms 620 KB Partially correct
20 Partially correct 3 ms 620 KB Partially correct
21 Correct 4 ms 620 KB Output is correct
22 Partially correct 3 ms 620 KB Partially correct
23 Partially correct 3 ms 620 KB Partially correct
24 Incorrect 4 ms 620 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 33 ms 3436 KB Partially correct
2 Correct 71 ms 4736 KB Output is correct
3 Partially correct 34 ms 4736 KB Partially correct
4 Correct 59 ms 4972 KB Output is correct
5 Correct 32 ms 4972 KB Output is correct
6 Correct 43 ms 4972 KB Output is correct
7 Partially correct 49 ms 4972 KB Partially correct
8 Partially correct 41 ms 4972 KB Partially correct
9 Correct 72 ms 4972 KB Output is correct
10 Partially correct 203 ms 9196 KB Partially correct
11 Correct 82 ms 9196 KB Output is correct
12 Partially correct 165 ms 9196 KB Partially correct
13 Correct 130 ms 9196 KB Output is correct
14 Correct 107 ms 9196 KB Output is correct
15 Partially correct 136 ms 9196 KB Partially correct
16 Correct 146 ms 9196 KB Output is correct
17 Partially correct 120 ms 9196 KB Partially correct
18 Correct 140 ms 9196 KB Output is correct
19 Partially correct 197 ms 9580 KB Partially correct
20 Correct 323 ms 12524 KB Output is correct
21 Correct 191 ms 12524 KB Output is correct
22 Partially correct 166 ms 12524 KB Partially correct
23 Correct 191 ms 12524 KB Output is correct
24 Partially correct 190 ms 12524 KB Partially correct
25 Correct 166 ms 12524 KB Output is correct
26 Correct 160 ms 12524 KB Output is correct
27 Partially correct 214 ms 12524 KB Partially correct
28 Partially correct 212 ms 12524 KB Partially correct
29 Partially correct 303 ms 12524 KB Partially correct
30 Correct 353 ms 13804 KB Output is correct
31 Correct 227 ms 13804 KB Output is correct
32 Partially correct 223 ms 13804 KB Partially correct
33 Correct 266 ms 13804 KB Output is correct
34 Correct 256 ms 13804 KB Output is correct
35 Correct 209 ms 13804 KB Output is correct
36 Correct 226 ms 13804 KB Output is correct
37 Correct 277 ms 14444 KB Output is correct
38 Partially correct 261 ms 14444 KB Partially correct
39 Partially correct 300 ms 14444 KB Partially correct
40 Correct 369 ms 15468 KB Output is correct
41 Partially correct 548 ms 17364 KB Partially correct