Submission #312695

#TimeUsernameProblemLanguageResultExecution timeMemory
312695amunduzbaevMechanical Doll (IOI18_doll)C++14
Compilation error
0 ms0 KiB
//#include "grader.cpp"
#include "doll.h"
#include <bits/stdc++.h>
#define pb(n) push_back(n)
using namespace std;
const int N=1e5+5;
int n,m,ind=0,origin;
vector<vector<int>>way;
vector<int>x,y;

void create_circuit(int M, vector<int> a) {
    m=M;
    vector<int>c(m+1,0);
    way.resize(m+1);
    a.pb(0);
    n=a.size();
    int ans;
    for(int i=0;i<n;i++){
        way[a[i]].push_back(a[(i+1)%n]);
        c[a[i]]=a[i+1];
    }
    int s=a.size();
    if(!s) ans=0;
    else if(s==1) ans=a[0];
    else{
        int j,k=1,K=0;
        while(k<s) {k*=2;K++;}
        vector<int>rev(k);
        for(j=0;j<k;j++) rev[j]=rev[j/2]/2|((j&1)<<(K-1));
        int id=--ind;
        for(int l=0;l<K-1;l++){
            for(j=0;j<(1<<l);j++){
                if((j<<(K-l))+(1<<(K-l)) <= k-s){}
                else if((j<<(K-l))+(1<<(K-l-1)) <= k-s){
                    x.push_back(id);
                    y.push_back(--ind);
                }else{
                    x.push_back(--ind);
                    y.push_back(--ind);
                }
            }
        }

        vector<int>go(k);
        int p=0;
        for(j=0;j<k;j++){
            if(rev[j]<k-s){}
            else go[rev[j]]=A[p++];
        }
        for(j=0;j<k/2;j++){
            if((j*2)+2 <= k-s){}
            else if((j<<1)+1 <= k-s){
                x.push_back(id);
                y.push_back(go[j*2+1]);
            }else{
                x.push_back(go[j*2]);
                y.push_back(go[j*2+1]);
            }
        }
        ans=id;
    }
    for(int i=0;i<=n;i++) c[i]=ans;
    /*
    for(int i=0;i<c.size();i++) cout<<c[i]<<" ";
    cout<<"\n";
    for(int i=0;i<x.size();i++) cout<<x[i]<<" ";
    cout<<'\n';
    for(int i=0;i<y.size();i++) cout<<y[i]<<" ";
    cout<<'\n';
    */
    answer(c,x,y);

}

/*
9 9
2 9 8 1 3 7 6 4 5

4 4
1 2 1 3

6 8
1 2 1 3 1 4 1 5
*/

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:48:29: error: 'A' was not declared in this scope
   48 |             else go[rev[j]]=A[p++];
      |                             ^