제출 #1199215

#제출 시각아이디문제언어결과실행 시간메모리
1199215ach00Mechanical Doll (IOI18_doll)C++20
16 / 100
49 ms11192 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; void create_circuit(int M, vector<int> A) { vector<vector<int>> next(M+1); int n = A.size(); for(int i = 0; i < n-1; i++) { next[A[i]].push_back(A[i+1]); } next[A[n-1]].push_back(0); int ns = -1; vector<int> C(M+1); C[0] = A[0]; vector<int> X; vector<int> Y; for(int k = 1; k <= M; k++) { if(next[k].size() == 4) { int r1,r2,r3; C[k] = r1 = ns; ns--; r2 = ns; ns--; X.push_back(r2); r3 = ns; ns--; Y.push_back(r3); X.push_back(next[k][0]); Y.push_back(next[k][2]); X.push_back(next[k][1]); Y.push_back(next[k][3]); } else if(next[k].size() == 3) { int r1,r2,r3; C[k] = r1 = ns; ns--; r2 = ns; ns--; X.push_back(r2); r3 = ns; ns--; Y.push_back(r3); X.push_back(next[k][0]); Y.push_back(r1); X.push_back(next[k][1]); Y.push_back(next[k][2]); } else if(next[k].size() == 2) { C[k] = ns; ns--; X.push_back(next[k][0]); Y.push_back(next[k][1]); } else if(next[k].size() == 1) { C[k] = next[k][0]; } } 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...