# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
418482 | jacquesamsel | Mechanical Doll (IOI18_doll) | C++14 | 59 ms | 9852 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 <bits/stdc++.h>
using namespace std;
void print_vecint(vector<int>& v) {
for (auto x : v) {
cout << x << " ";
}
cout << endl;
}
void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y);
int create_switch(vector<int>& X, vector<int>& Y, vector<int> runOutcomes) {
int noOut = runOutcomes.size();
X.push_back(runOutcomes[0]);
Y.push_back(runOutcomes[1]);
return -(X.size());
}
void create_circuit(int M, vector<int> A) {
// A.push_back(0);
A.insert(A.begin(), {0});
vector<int> X;
vector<int> Y;
vector<int> C;
C.assign(M+1, 0);
vector<vector<int>> occurances;
occurances.assign(M+1, {});
for (int i = 0; i < A.size(); i++) {
if (A[i] != 0) {
occurances[A[i]].push_back(A[i+1]);
}
}
unordered_map<int, int> switches;
for (int i = 0; i < occurances.size(); i++) {
if (occurances[i].size() > 1) {
switches.insert({i, create_switch(X, Y, occurances[i])});
C[i] = switches[i];
}
}
// print_vecint(A);
int last = 0;
bool skip = false;
for (int i = 0; i < A.size(); i++) {
if (skip) {
skip = false;
continue;
}
if (switches.find(A[i+1]) != switches.end()) {
C[A[i]] = A[i+1];
skip = true;
} else {
// cout << "normal: " << A[i+1] << endl;
C[A[i]] = A[i+1];
}
// print_vecint(C);
}
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... |