제출 #312108

#제출 시각아이디문제언어결과실행 시간메모리
312108tengiz05자동 인형 (IOI18_doll)C++17
2 / 100
43 ms4648 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
void create_circuit(int m, vector<int> a) {
	int n = a.size();
	
	vector<int> c(m + 1, 0);
	vector<int> cnt(m+1);
	vector<int> used(m+1);
	vector<int> X, Y;
	for(int i=0;i<n;i++)cnt[a[i]]++;
	vector<int> ind(m+1);
	int tt = 0;
	for(int i=0;i<=m;i++){
		if(cnt[i] == 2){
			ind[i] = tt;tt++;
			X.push_back(0);
			Y.push_back(0);
		}
	}
	int now = 0;
	int t = -1;
	for(int i=0;i<n;i++){
		if(cnt[now] == 2){
			if(used[now]){
				Y[ind[now]] = a[i];
				now = a[i];
			}else {
				X[ind[now]] = a[i];
				used[now] = 1;
				c[now] = t;
				now = a[i];
				t--;
			}
		}else {
			c[now] = a[i];
			now = a[i];
		}
	}//c[now] = 0;
	
	answer(c, X, Y);
}

/*

4 4
1 1 2 2

*/
#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...