Submission #260420

# Submission time Handle Problem Language Result Execution time Memory
260420 2020-08-10T08:43:11 Z 반딧불(#5056) Airline Route Map (JOI18_airline) C++14
0 / 100
1231 ms 39544 KB
#include <bits/stdc++.h>
#include "Alicelib.h"

using namespace std;

typedef long long ll;

namespace AA{
    vector<int> link[2020];
    vector<pair<int, int> > edge;
    int cnt = 1;
}
using namespace AA;

void Alice(int N, int M, int A[], int B[]){
    for(int i=0; i<M; i++){ /// original graph
        link[A[i]].push_back(B[i]);
        link[B[i]].push_back(A[i]);
    }
    for(int i=0; i<N+10; i++){ /// vertex X
        link[N+11].push_back(i);
        link[i].push_back(N+11);
    }
    for(int d=0; d<10; d++){ /// vertex d0, d1, ..., d9
        for(int i=0; i<N; i++){
            if(i & (1<<d)) link[i].push_back(N+d), link[N+d].push_back(i);
        }
    }

    for(int i=0; i<10; i++){
        link[N+i].push_back(N+10);
        link[N+10].push_back(N+i);
    }

    for(int i=0; i<9; i++){
        link[N+i].push_back(N+i+1);
        link[N+i+1].push_back(N+i);
    }

    for(int i=0; i<N+12; i++){
        for(auto &j: link[i]){
            if(i < j) edge.push_back(make_pair(i, j));
        }
    }

    InitG(N+12, (int)edge.size());
    int cnt = 0;
    for(auto &x: edge){
//        printf("%d %d\n", x.first, x.second);
        MakeG(cnt++, x.first, x.second);
    }
}
#include <bits/stdc++.h>
#include "Boblib.h"

using namespace std;

typedef long long ll;

namespace BB{
    int n, m;
    int idx[2020];
    vector<int> glink[2020];
    vector<int> link[2002];

    int vertexX = -1, vertexY = -1;
    int vertexD[20];
    vector<int> specialVertices;
    bool isSpecial[2020];
    int specialDegree[2020];

    vector<int> specialLink[2020];

    vector<pair<int, int> > edge;
}
using namespace BB;

void Bob(int V, int U, int C[], int D[]){
    n = V-12;
    if(n==1){
        InitMap(1, 0);
        return;
    }

    for(int i=0; i<U; i++){
        glink[C[i]].push_back(D[i]);
        glink[D[i]].push_back(C[i]);
    }

    for(int i=0; i<V; i++){
        if((int)glink[i].size() == n+10){
            vertexX = i;

            for(int j=0; j<V; j++) isSpecial[j] = 1;
            isSpecial[i] = 0;
            for(auto &x: glink[i]) isSpecial[x] = 0;

            for(int j=0; j<V; j++){
                if(isSpecial[j]) specialVertices.push_back(j);
            }
            vertexY = specialVertices[0];

            memset(isSpecial, 0, sizeof(isSpecial));

            specialVertices.clear();
            for(auto &x: glink[vertexY]){
                specialVertices.push_back(x);
                isSpecial[x] = 1;
            }
            assert(specialVertices.size() == 10);
            break;
        }
    }

    int onedeg = 0;
    int onedegcnt = 0;
    for(auto &x: specialVertices){
        for(auto &y: glink[x]){
            if(isSpecial[y]){
                specialDegree[x]++;
                specialLink[x].push_back(y);
                specialLink[y].push_back(x);
            }
        }
        if(specialDegree[x] == 1){
            onedeg = max(onedeg, (int)glink[x].size());
            onedegcnt++;
        }
    }
    assert(onedegcnt == 2);

    for(auto &x: specialVertices){
        if(specialDegree[x] == 1 && onedeg == (int)glink[x].size()){
            vertexD[0] = x;
            specialDegree[x] = 0;

            int tmp = x, prv = 0;
            for(int i=1; i<10; i++){
                vertexD[i] = -1;
                for(auto &y: specialLink[tmp]){
                    if(prv == y) continue;
                    prv = tmp;
                    vertexD[i] = tmp = y;
                    specialDegree[y] = i;
                    break;
                }
            }
            break;
        }
    }

    for(int i=0; i<V; i++){
        if(isSpecial[i] || i == vertexX || i == vertexY) continue;

        for(auto &x: glink[i]){
            if(isSpecial[x]) idx[i] += 1 << specialDegree[x];
        }
    }

    for(int i=0; i<V; i++){
        if(isSpecial[i] || i == vertexX || i == vertexY) continue;

        for(auto &x: glink[i]){
            if(!isSpecial[x] && x != vertexX && x != vertexY){
                link[idx[i]].push_back(idx[x]);
            }
        }
    }

    for(int i=0; i<n; i++){
        for(auto &x: link[i]){
            if(i < x){
                edge.push_back(make_pair(i, x));
            }
        }
    }

    InitMap(n, (int)edge.size());
    for(auto &x: edge){
        MakeMap(x.first, x.second);
    }
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6912 KB Output is correct
2 Correct 5 ms 6912 KB Output is correct
3 Correct 7 ms 6912 KB Output is correct
4 Correct 7 ms 6912 KB Output is correct
5 Correct 6 ms 6912 KB Output is correct
6 Correct 6 ms 6912 KB Output is correct
7 Correct 6 ms 6912 KB Output is correct
8 Correct 6 ms 6912 KB Output is correct
9 Correct 5 ms 6912 KB Output is correct
10 Correct 5 ms 6912 KB Output is correct
11 Incorrect 6 ms 6912 KB Wrong Answer [14]
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6912 KB Output is correct
2 Correct 5 ms 6912 KB Output is correct
3 Correct 7 ms 6912 KB Output is correct
4 Correct 7 ms 6912 KB Output is correct
5 Correct 6 ms 6912 KB Output is correct
6 Correct 6 ms 6912 KB Output is correct
7 Correct 6 ms 6912 KB Output is correct
8 Correct 6 ms 6912 KB Output is correct
9 Correct 5 ms 6912 KB Output is correct
10 Correct 5 ms 6912 KB Output is correct
11 Incorrect 6 ms 6912 KB Wrong Answer [14]
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 996 ms 39408 KB Output is correct : V - N = 12
2 Correct 573 ms 34496 KB Output is correct : V - N = 12
3 Correct 294 ms 19080 KB Output is correct : V - N = 12
4 Correct 18 ms 7680 KB Output is correct : V - N = 12
5 Correct 169 ms 14032 KB Output is correct : V - N = 12
6 Correct 479 ms 32588 KB Output is correct : V - N = 12
7 Correct 1231 ms 39168 KB Output is correct : V - N = 12
8 Correct 1056 ms 36984 KB Output is correct : V - N = 12
9 Correct 332 ms 22216 KB Output is correct : V - N = 12
10 Correct 57 ms 9368 KB Output is correct : V - N = 12
11 Correct 52 ms 10744 KB Output is correct : V - N = 12
12 Correct 358 ms 25832 KB Output is correct : V - N = 12
13 Correct 941 ms 37872 KB Output is correct : V - N = 12
14 Correct 1218 ms 38616 KB Output is correct : V - N = 12
15 Correct 398 ms 31400 KB Output is correct : V - N = 12
16 Correct 99 ms 12168 KB Output is correct : V - N = 12
17 Correct 28 ms 8440 KB Output is correct : V - N = 12
18 Correct 377 ms 20632 KB Output is correct : V - N = 12
19 Correct 576 ms 35792 KB Output is correct : V - N = 12
20 Correct 905 ms 39544 KB Output is correct : V - N = 12
21 Correct 183 ms 17824 KB Output is correct : V - N = 12
22 Correct 265 ms 14480 KB Output is correct : V - N = 12
23 Correct 47 ms 10680 KB Output is correct : V - N = 12
24 Correct 12 ms 7168 KB Output is correct : V - N = 12
25 Correct 40 ms 9184 KB Output is correct : V - N = 12
26 Correct 123 ms 13752 KB Output is correct : V - N = 12
27 Correct 227 ms 15768 KB Output is correct : V - N = 12
28 Correct 182 ms 15184 KB Output is correct : V - N = 12
29 Correct 77 ms 11360 KB Output is correct : V - N = 12
30 Correct 15 ms 7936 KB Output is correct : V - N = 12
31 Correct 13 ms 7424 KB Output is correct : V - N = 12
32 Correct 13 ms 7424 KB Output is correct : V - N = 12
33 Correct 14 ms 7424 KB Output is correct : V - N = 12
34 Correct 16 ms 7424 KB Output is correct : V - N = 12
35 Correct 13 ms 7424 KB Output is correct : V - N = 12
36 Correct 891 ms 39264 KB Output is correct : V - N = 12
37 Correct 712 ms 39232 KB Output is correct : V - N = 12
38 Correct 718 ms 39376 KB Output is correct : V - N = 12
39 Correct 1196 ms 39168 KB Output is correct : V - N = 12
40 Correct 1056 ms 39192 KB Output is correct : V - N = 12
41 Correct 143 ms 13664 KB Output is correct : V - N = 12
42 Correct 146 ms 12624 KB Output is correct : V - N = 12
43 Correct 127 ms 13392 KB Output is correct : V - N = 12
44 Correct 14 ms 7680 KB Output is correct : V - N = 12
45 Correct 76 ms 11104 KB Output is correct : V - N = 12
46 Correct 429 ms 19648 KB Output is correct : V - N = 12
47 Correct 222 ms 13672 KB Output is correct : V - N = 12
48 Correct 317 ms 22360 KB Output is correct : V - N = 12
49 Correct 69 ms 10496 KB Output is correct : V - N = 12
50 Correct 26 ms 8704 KB Output is correct : V - N = 12
51 Correct 568 ms 34600 KB Output is correct : V - N = 12
52 Correct 16 ms 7680 KB Output is correct : V - N = 12
53 Correct 746 ms 32348 KB Output is correct : V - N = 12
54 Correct 1056 ms 36472 KB Output is correct : V - N = 12
55 Correct 57 ms 9208 KB Output is correct : V - N = 12
56 Correct 333 ms 24928 KB Output is correct : V - N = 12
57 Correct 646 ms 37920 KB Output is correct : V - N = 12
58 Correct 126 ms 12072 KB Output is correct : V - N = 12
59 Correct 257 ms 20448 KB Output is correct : V - N = 12
60 Correct 703 ms 39008 KB Output is correct : V - N = 12
61 Correct 6 ms 6912 KB Output is correct : V - N = 12
62 Correct 6 ms 6912 KB Output is correct : V - N = 12
63 Correct 7 ms 6912 KB Output is correct : V - N = 12
64 Correct 6 ms 6912 KB Output is correct : V - N = 12
65 Correct 5 ms 6912 KB Output is correct : V - N = 12
66 Correct 6 ms 6912 KB Output is correct : V - N = 12
67 Correct 7 ms 6912 KB Output is correct : V - N = 12
68 Correct 7 ms 6912 KB Output is correct : V - N = 12
69 Correct 7 ms 6912 KB Output is correct : V - N = 12
70 Correct 6 ms 6912 KB Output is correct : V - N = 12
71 Correct 6 ms 6912 KB Output is correct : V - N = 12
72 Correct 7 ms 6912 KB Output is correct : V - N = 12
73 Correct 7 ms 6912 KB Output is correct : V - N = 12
74 Correct 6 ms 6912 KB Output is correct : V - N = 12
75 Correct 6 ms 6912 KB Output is correct : V - N = 12
76 Correct 7 ms 6912 KB Output is correct : V - N = 12
77 Correct 5 ms 6912 KB Output is correct : V - N = 12
78 Correct 5 ms 6912 KB Output is correct : V - N = 12
79 Correct 6 ms 6912 KB Output is correct : V - N = 12
80 Correct 6 ms 6912 KB Output is correct : V - N = 12
81 Correct 7 ms 6912 KB Output is correct : V - N = 12
82 Correct 5 ms 6864 KB Output is correct : V - N = 12
83 Correct 5 ms 6912 KB Output is correct : V - N = 12
84 Correct 5 ms 6912 KB Output is correct : V - N = 12
85 Correct 6 ms 6912 KB Output is correct : V - N = 12
86 Correct 7 ms 6912 KB Output is correct : V - N = 12
87 Correct 7 ms 6912 KB Output is correct : V - N = 12
88 Correct 6 ms 6912 KB Output is correct : V - N = 12
89 Correct 6 ms 6912 KB Output is correct : V - N = 12
90 Correct 7 ms 6912 KB Output is correct : V - N = 12
91 Correct 6 ms 6912 KB Output is correct : V - N = 12
92 Correct 5 ms 6912 KB Output is correct : V - N = 12
93 Correct 6 ms 6912 KB Output is correct : V - N = 12
94 Correct 6 ms 6912 KB Output is correct : V - N = 12
95 Correct 5 ms 6912 KB Output is correct : V - N = 12
96 Correct 8 ms 6912 KB Output is correct : V - N = 12
97 Correct 7 ms 6912 KB Output is correct : V - N = 12
98 Correct 7 ms 6912 KB Output is correct : V - N = 12
99 Correct 7 ms 6912 KB Output is correct : V - N = 12
100 Correct 7 ms 6912 KB Output is correct : V - N = 12
101 Correct 6 ms 6912 KB Output is correct : V - N = 12
102 Correct 7 ms 6912 KB Output is correct : V - N = 12
103 Correct 6 ms 6912 KB Output is correct : V - N = 12
104 Correct 7 ms 6912 KB Output is correct : V - N = 12
105 Correct 6 ms 6912 KB Output is correct : V - N = 12
106 Correct 6 ms 6912 KB Output is correct : V - N = 12
107 Correct 6 ms 6912 KB Output is correct : V - N = 12
108 Correct 7 ms 6912 KB Output is correct : V - N = 12
109 Correct 6 ms 6912 KB Output is correct : V - N = 12
110 Correct 7 ms 6912 KB Output is correct : V - N = 12
111 Correct 6 ms 6912 KB Output is correct : V - N = 12
112 Correct 6 ms 6912 KB Output is correct : V - N = 12
113 Correct 6 ms 6912 KB Output is correct : V - N = 12
114 Correct 6 ms 6912 KB Output is correct : V - N = 12
115 Correct 5 ms 6912 KB Output is correct : V - N = 12
116 Correct 7 ms 6912 KB Output is correct : V - N = 12
117 Correct 6 ms 6912 KB Output is correct : V - N = 12
118 Correct 6 ms 6912 KB Output is correct : V - N = 12
119 Correct 7 ms 6912 KB Output is correct : V - N = 12
120 Correct 7 ms 6912 KB Output is correct : V - N = 12
121 Correct 5 ms 6864 KB Output is correct : V - N = 12
122 Correct 6 ms 6912 KB Output is correct : V - N = 12
123 Correct 6 ms 6912 KB Output is correct : V - N = 12
124 Correct 5 ms 6912 KB Output is correct : V - N = 12
125 Correct 6 ms 6912 KB Output is correct : V - N = 12
126 Correct 6 ms 6912 KB Output is correct : V - N = 12
127 Correct 5 ms 6912 KB Output is correct : V - N = 12
128 Correct 6 ms 6912 KB Output is correct : V - N = 12
129 Correct 8 ms 6912 KB Output is correct : V - N = 12
130 Correct 5 ms 6912 KB Output is correct : V - N = 12
131 Correct 5 ms 6912 KB Output is correct : V - N = 12
132 Correct 6 ms 6912 KB Output is correct : V - N = 12
133 Correct 5 ms 6912 KB Output is correct : V - N = 12
134 Correct 6 ms 6912 KB Output is correct : V - N = 12
135 Correct 5 ms 6912 KB Output is correct : V - N = 12
136 Correct 5 ms 6912 KB Output is correct : V - N = 12
137 Correct 5 ms 6912 KB Output is correct : V - N = 12
138 Correct 6 ms 6912 KB Output is correct : V - N = 12
139 Correct 5 ms 6912 KB Output is correct : V - N = 12
140 Incorrect 5 ms 6912 KB Wrong Answer [11]
141 Halted 0 ms 0 KB -