Submission #96199

# Submission time Handle Problem Language Result Execution time Memory
96199 2019-02-07T00:49:09 Z lyc Mechanical Doll (IOI18_doll) C++14
6 / 100
110 ms 14068 KB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXM = 100005;
vector<int> nxt[MAXM];
int S = -1;
vector<int> C, X, Y;

void build(int rt, int i, int s, int e) {
    if (s > e) return;
    //cout << "BUILD " << rt << " " << i << " " << s << " " << e << endl;

    if (s == e) {
        if (i >= 0) C[i] = nxt[rt][s];
        else {
            //X[-i] = i, Y[-i] = nxt[rt][s];
            X.push_back(i);
            Y.push_back(nxt[rt][s]);
        }
    }
    else if (s+1 == e && i < 0) {
        //X[-i] = nxt[rt][s];
        //Y[-i] = nxt[rt][e];
        X.push_back(nxt[rt][s]);
        Y.push_back(nxt[rt][e]);
    }
    else {
        int m = (s+e)/2;
        if (i >= 0) {
            C[i] = S--;
            build(rt, C[i], s, e);
        }
        else {
            X.push_back(S);
            build(rt, S--, s, m);
            Y.push_back(S);
            build(rt, S--, m+1, e);
        }
    }
}

void create_circuit(int M, std::vector<int> A) {
    int N = A.size();
    C.resize(M+1);

    A.push_back(0);
    for (int i = 0; i <= N; ++i) {
        nxt[A[i]].push_back(A[(i+1)%(N+1)]);
    }

    //X.resize(2*N);
    //Y.resize(2*N);
    for (int i = 0; i <= M; ++i) {
        build(i, i, 0, (int)nxt[i].size()-1);
        //cout << i << ": "; for (auto x : nxt[i]) cout << x << ' '; cout << endl;
    }

    //cout << endl;
    //for (auto x : C) cout << x << ' '; cout << endl;
    //for (auto x : X) cout << x << ' '; cout << endl;
    //for (auto x : Y) cout << x << ' '; cout << endl;
    answer(C, X, Y);
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 2636 KB Output is correct
2 Correct 45 ms 6344 KB Output is correct
3 Correct 30 ms 6080 KB Output is correct
4 Correct 3 ms 2636 KB Output is correct
5 Correct 13 ms 3784 KB Output is correct
6 Correct 62 ms 7860 KB Output is correct
7 Correct 3 ms 2648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 2636 KB Output is correct
2 Correct 45 ms 6344 KB Output is correct
3 Correct 30 ms 6080 KB Output is correct
4 Correct 3 ms 2636 KB Output is correct
5 Correct 13 ms 3784 KB Output is correct
6 Correct 62 ms 7860 KB Output is correct
7 Correct 3 ms 2648 KB Output is correct
8 Correct 92 ms 8764 KB Output is correct
9 Correct 68 ms 9096 KB Output is correct
10 Correct 108 ms 12352 KB Output is correct
11 Correct 3 ms 2636 KB Output is correct
12 Correct 4 ms 2636 KB Output is correct
13 Correct 3 ms 2636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 2636 KB Output is correct
2 Correct 45 ms 6344 KB Output is correct
3 Correct 30 ms 6080 KB Output is correct
4 Correct 3 ms 2636 KB Output is correct
5 Correct 13 ms 3784 KB Output is correct
6 Correct 62 ms 7860 KB Output is correct
7 Correct 3 ms 2648 KB Output is correct
8 Correct 92 ms 8764 KB Output is correct
9 Correct 68 ms 9096 KB Output is correct
10 Correct 108 ms 12352 KB Output is correct
11 Correct 3 ms 2636 KB Output is correct
12 Correct 4 ms 2636 KB Output is correct
13 Correct 3 ms 2636 KB Output is correct
14 Incorrect 110 ms 14068 KB state 'Y'
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 2636 KB wrong motion
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 2636 KB wrong motion
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 2636 KB wrong motion
2 Halted 0 ms 0 KB -