제출 #1209530

#제출 시각아이디문제언어결과실행 시간메모리
1209530AvianshMechanical Doll (IOI18_doll)C++20
16 / 100
47 ms11192 KiB
#include "doll.h"
#include <bits/stdc++.h>

using namespace std;

void create_circuit(int m, vector<int> a) {
    vector<int>c(m+1);
    vector<int>x;
    vector<int>y;
    vector<int>nxs[m+1];
    int n = a.size();
    for(int i = 0;i<n-1;i++){
        nxs[a[i]].push_back(a[i+1]);
    }
    nxs[a[n-1]].push_back(0);
    nxs[0].push_back(a[0]);
    for(int i = 0;i<=m;i++){
        if(nxs[i].size()==1){
            c[i]=nxs[i][0];
        }
        if(nxs[i].size()==2){
            x.push_back(nxs[i][0]);
            y.push_back(nxs[i][1]);
            c[i]=-x.size();
        }
        if(nxs[i].size()==3){
            int t = x.size();
            t++;
            x.push_back(-t-1);
            x.push_back(nxs[i][0]);
            x.push_back(nxs[i][1]);
            y.push_back(-t-2);
            y.push_back(-t);
            y.push_back(nxs[i][2]);
            c[i]=-t;
        }
        if(nxs[i].size()==4){
            int t = x.size();
            t++;
            x.push_back(-t-1);
            x.push_back(nxs[i][0]);
            x.push_back(nxs[i][1]);
            y.push_back(-t-2);
            y.push_back(nxs[i][2]);
            y.push_back(nxs[i][3]);
            c[i]=-t;
        }
    }
    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...