Submission #1199008

#TimeUsernameProblemLanguageResultExecution timeMemory
1199008Gr1senMechanical Doll (IOI18_doll)C++20
16 / 100
38 ms8192 KiB
#include "doll.h" #include<algorithm> #include<iostream> #include<vector> #include<iomanip> using namespace std; #define vi vector<int> #define vvi vector<vi> void print(vi &L) { cerr << "{"; for (auto i : L) cerr << i << ", "; cerr << "}" << endl; } void create_circuit(int m, vector<int> A) { int n = A.size(); A.push_back(0); vi C(m + 1, 0); vi X, Y; int l = 0; for (int i = 0; i <= n; i++) { /* cerr << "iteration : " << i << endl; cerr << "C : "; print(C); cerr << "X : "; print(X); cerr << "Y : "; print(Y); //*/ if (C[l] == 0) { l = C[l] = A[i]; continue; } if (C[l] > 0) { X.push_back(C[l]); Y.push_back(A[i]); C[l] = -X.size(); l = A[i]; continue; } int p = (-C[l])-1; int x = X[p], y = Y[p]; if (x > 0) { X.push_back(C[l]); Y.push_back(y); X[p] = -X.size(); X.push_back(x); Y.push_back(A[i]); Y[p] = -X.size(); l = A[i]; continue; } int xp = -x-1, yp = -y-1; int a1 = X[yp], a2 = Y[xp], a3 = Y[yp], a4 = A[i]; X[xp] = a1; X[yp] = a2; Y[xp] = a3; Y[yp] = a4; l = a4; } 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...