Submission #406132

#TimeUsernameProblemLanguageResultExecution timeMemory
406132urd05Mechanical Doll (IOI18_doll)C++14
6 / 100
100 ms11556 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> v;
vector<int> x;
vector<int> y;
vector<int> nt[100001];
int now=-1;

void create_circuit(int m,vector<int> a) {
    int n=a.size();
    v.resize(m+1);
    x.resize(200000);
    y.resize(200000);
    nt[0].push_back(a[0]);
    for(int i=1;i<n;i++) {
        nt[a[i-1]].push_back(a[i]);
    }
    nt[a[n-1]].push_back(0);
    for(int i=0;i<=m;i++) {
        if (nt[i].empty()) {
            v[i]=0;
        }
        if (nt[i].size()==1) {
            v[i]=nt[i][0];
        }
        if (nt[i].size()==2) {
            v[i]=now;
            x[-now-1]=nt[i][0];
            y[-now-1]=nt[i][1];
            now--;
        }
        if (nt[i].size()==3) {
            v[i]=now;
            x[-now-1]=now-1;
            y[-now-1]=nt[i][1];
            x[-now]=nt[i][0];
            y[-now]=nt[i][2];
            now-=2;
        }
    }
    x.resize(-now-1);
    y.resize(-now-1);
    answer(v,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...