# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
95725 | tqbfjotld | Mechanical Doll (IOI18_doll) | C++14 | 45 ms | 5176 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "doll.h"
#include <vector>
#include <utility>
using namespace std;
pair<int,int> ans2[100005];
int ans[100005];
using namespace std;
void create_circuit(int M, std::vector<int> A) {
vector<int> X;
vector<int> Y;
for (int x = 0; x<M+1; x++){
ans2[x].first = -x;
ans2[x].second = -x;
}
for (int x = 0; x<A.size()-1; x++){
if (ans2[A[x]].first == A[x]){
ans2[A[x]].second = A[x+1];
}
else{
ans2[A[x]].first = ans2[A[x]].second;
ans2[A[x]].second = A[x+1];
}
}
if (ans2[A[A.size()-1]].first == -A[A.size()-1]){
ans2[A[A.size()-1]].second = 0;
}
else{
ans2[A[A.size()-1]].first = ans2[A[A.size()-1]].second;
ans2[A[A.size()-1]].second = 0;
}
vector<int> C;
for (int x = 0; x<M+1; x++){
C.push_back(-x);
if (x==0) continue;
X.push_back(ans2[x].first);
Y.push_back(ans2[x].second);
}
C[0] = A[0];
answer(C, X, Y);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |