Submission #115179

# Submission time Handle Problem Language Result Execution time Memory
115179 2019-06-05T21:29:23 Z MladenP Mechanical Doll (IOI18_doll) C++17
37 / 100
177 ms 18132 KB
#include "doll.h"
#include <bits/stdc++.h>
#define MAXN (1<<20)
#define MAXM 200010
#define PRINT(x) cerr<<#x<<' '<<x<<endl;
#define mid (l+r)/2
#define pb push_back
using namespace std;
vector<int> X, Y, C;
int x[MAXN], y[MAXN], stdva, idxx[MAXN];
int N, idx;
set<int> nodes;
void ubaci(int node, int put, int kraj, int dub) {
    if(dub == stdva) {
        if(put == 0) x[node] = kraj;
        if(put == 1) y[node] = kraj;
        return;
    }
    if(!(put&1)) {
        if(x[node] == -1) x[node] = --idx;
        ubaci(-x[node], put>>1, kraj, dub+1);
    } else {
        if(y[node] == -1) y[node] = --idx;
        ubaci(-y[node], put>>1, kraj, dub+1);
    }
}
void nadji(int put, int kraj, int l, int r) {
    if(l == r) {
        idxx[l] = kraj;
        return;
    }
    if(!(put&1)) nadji(put>>1, kraj, l, mid);
    else nadji(put>>1, kraj, mid+1, r);
}
void create_circuit(int M, std::vector<int> A) {
    N = A.size();
    C.resize(M+1);
    for(int i = 1; i <= M; i++) C[i] = -1;
    C[0] = -1;
    idx = -1;
    for(int i = 0; i < 20; i++) {
        if((1<<i) > N) {
            stdva = i;
            break;
        }
    }
    for(int i = 0; i < (1<<stdva); i++) {
        nadji(i, i, 0, (1<<stdva)-1);
    }
    fill(x, x+MAXN, -1);
    fill(y, y+MAXN, -1);
    int st = (1<<stdva)-N-1;
    for(int i = st; i < (1<<stdva)-1; i++) {
        ubaci(1, i, A[i-st], 1);
    }
    ubaci(1, (1<<stdva)-1, 0, 1);
    idx = -idx;
    X.resize(idx);
    Y.resize(idx);
    for(int i = 1; i <= idx; i++) {
        X[i-1] = x[i];
        Y[i-1] = y[i];
    }
    answer(C, X, Y);
}
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 8396 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 8396 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 8396 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 8396 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 5 ms 8396 KB Output is partially correct
2 Partially correct 105 ms 16812 KB Output is partially correct
3 Partially correct 112 ms 16776 KB Output is partially correct
4 Partially correct 125 ms 17276 KB Output is partially correct
# Verdict Execution time Memory Grader output
1 Partially correct 5 ms 8396 KB Output is partially correct
2 Partially correct 105 ms 16812 KB Output is partially correct
3 Partially correct 112 ms 16776 KB Output is partially correct
4 Partially correct 125 ms 17276 KB Output is partially correct
5 Partially correct 141 ms 18100 KB Output is partially correct
6 Partially correct 128 ms 18132 KB Output is partially correct
7 Partially correct 146 ms 18084 KB Output is partially correct
8 Partially correct 119 ms 17708 KB Output is partially correct
9 Partially correct 108 ms 16756 KB Output is partially correct
10 Partially correct 121 ms 17708 KB Output is partially correct
11 Partially correct 119 ms 17312 KB Output is partially correct
12 Partially correct 123 ms 17080 KB Output is partially correct
13 Partially correct 131 ms 17344 KB Output is partially correct
14 Partially correct 108 ms 17464 KB Output is partially correct
15 Partially correct 126 ms 17556 KB Output is partially correct
16 Partially correct 10 ms 8780 KB Output is partially correct
17 Correct 93 ms 13104 KB Output is correct
18 Partially correct 110 ms 16960 KB Output is partially correct
19 Partially correct 112 ms 17056 KB Output is partially correct
20 Partially correct 177 ms 17568 KB Output is partially correct
21 Partially correct 121 ms 17268 KB Output is partially correct
22 Partially correct 117 ms 17380 KB Output is partially correct