Submission #1186580

#TimeUsernameProblemLanguageResultExecution timeMemory
1186580HappyCapybaraMechanical Doll (IOI18_doll)C++17
47 / 100
43 ms12072 KiB
#include<bits/stdc++.h>
#include "doll.h"
using namespace std;

void create_circuit(int m, vector<int> a){
    int n = a.size();
    int pn = pow(2, floor(log2(n-1))+1);
    vector<int> b = a;
    a = {};
    b.push_back(0);
    while (a.size()+b.size() <= pn) a.push_back(-1);
    for (int i=1; i<=n; i++) a.push_back(b[i]);
    vector<int> v = {0}, w;
    while (v.size() != pn){
        w = {};
        swap(v, w);
        for (int x : w){
            v.push_back(x);
            v.push_back(x + (int) w.size());
        }
    }
    vector<int> c(m+1, -1), x(pn-1), y(pn-1);
    c[0] = b[0];
    for (int i=0; i<pn-1; i++){
        if (2*(i+1) < pn-1){
            x[i] = -2*(i+1);
            y[i] = -2*(i+1)-1;
        }
        else {
            x[i] = a[v[2*(i+1)-pn]];
            y[i] = a[v[2*(i+1)+1-pn]];
        }
    }
    answer(c, x, y);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...