Submission #586041

#TimeUsernameProblemLanguageResultExecution timeMemory
586041jasminMechanical Doll (IOI18_doll)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
#include<doll.h>
//#define int long long

int ind;
vector<int> x;
vector<int> y;

/*void answer(vector<int> c, vector<int> x, vector<int> y){
    cout << c.size() << "\n";
    for(auto e: c){
        cout << e << " ";
    }
    cout << "\n";
    cout << x.size() << "\n";
    for(int i=0; i<(int)x.size(); i++){
        cout << x[i] << " " << y[i] << "\n";
    }
}*/

int create_tree(int h, int maxh, int num, vector<int>& a){
    if(h==maxh){
        if(num>=(int)a.size()) return -1;
        return -a[num];
    }

    int child0=create_tree(h+1, maxh, num, a);
    int child1=create_tree(h+1, maxh, num+(1<<h), a);

    if(child1==-1) return child0;
    x.push_back(-child0);
    y.push_back(-child1);

    int i=ind;
    ind++;
    return i;
}

int pow2(int x){
    int ans=0;
    int p=1;
    while(p<x){
        ans++;
        p*=2;
    }
    return ans;
}

void create_circuit(int m, vector<int>& a){
    vector<vector<int> > adi(m+1);
    int n=a.size();
    for(int i=0; i<n; i++){
        adi[a[i]].push_back(a[i+1]);
    }

    x.clear();
    y.clear();
    ind=1;
    vector<int> c(m+1);
    c[0]=a[0];
    for(int i=0; i<n; i++){
        if(adi[i].size()==0) continue;
        if(adi[i].size()==1){
            c[i]=adi[i][0];
            continue;
        }

        int maxh=pow2(adi[i].size());
        c[i]=-create_tree(0, maxh, 0, adi[i]);
    }

    answer(c, x, y);
}

/*signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int m, n;
    cin >> m >> n;
    vector<int> a(n);
    for(int i=0; i<n; i++){
        cin >> a[i];
    }
    create_circuit(m, a);
}*/

Compilation message (stderr)

/usr/bin/ld: /tmp/ccmhoS1P.o: in function `main':
grader.cpp:(.text.startup+0x168): undefined reference to `create_circuit(int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status