Submission #1274781

#TimeUsernameProblemLanguageResultExecution timeMemory
1274781nicolo_010Mechanical Doll (IOI18_doll)C++20
6 / 100
167 ms14660 KiB
#include <bits/stdc++.h>
#include "doll.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;

void create_circuit(int M, std::vector<int> A) {
	int N = A.size();
	vector<int> C(M+1, 0);
	C[0] = A[0];
	map<int, int> mp;
	for (int i=0; i<N; i++) {
		mp[A[i]]++;
	}
	vector<int> X, Y;
	C[0] = A[0];
	map<int, int> id;
	for (int i=0; i<N-1; i++) {
		if (id.count(A[i])) {
			Y[id[A[i]]] = A[i+1];
		}
		else if (mp[A[i]] >= 2) {
			X.push_back(A[i+1]);
			Y.push_back(-1e9);
			C[A[i]] = -(X.size());
			id[A[i]] = X.size()-1;
		}
		else {
			C[A[i]] = A[i+1];
		}
	}
	if (id.count(A[N-1])) {
		Y[id[A[N-1]]] = 0;
	}
	else {
		C[A[N-1]] = 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...