Submission #1073833

#TimeUsernameProblemLanguageResultExecution timeMemory
1073833GabrielMechanical Doll (IOI18_doll)C++17
6 / 100
129 ms11212 KiB
#include "doll.h" #include "bits/stdc++.h" using namespace std; void create_circuit(int M, vector<int> A){ int n = A.size(); map<int, int> Mapa; bool _1 = 1, _2 = 1; for(int i = 0; i < n; i++){ Mapa[A[i]]++; if(Mapa[A[i]] > 1) _1 = 0; if(Mapa[A[i]] > 2) _2 = 0; } vector<int> c(M + 1, 0), x, y; if(M == 1){ if(n == 1) c = {1, 0}; else { c = {1, -1}; int j = -1; for(int i = 0; i < n - 1; i++){ if(j + 1 == 0) x.push_back(1); else x.push_back(j + 1); y.push_back(j - 1); j--; } y.back() = 0; } } else if(_1){ for(int i = 0; i < n; i++){ if(i == 0){ c[0] = A[i]; } else { c[A[i - 1]] = A[i]; } } } else if(_2){ vector<bool> Usados(M + 1, 0); int j = -1; A.push_back(0); for(int i = 0; i <= n; i++){ if(i == 0){ c[0] = A[i]; } else { if(Usados[A[i - 1]]){ x.push_back(c[A[i - 1]]); c[A[i - 1]] = j; j--; y.push_back(A[i]); } else { c[A[i - 1]] = A[i]; Usados[A[i - 1]] = 1; } } } } 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...