Submission #295990

#TimeUsernameProblemLanguageResultExecution timeMemory
295990Autoratch자동 인형 (IOI18_doll)C++14
16 / 100
155 ms16224 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 1; int sw; vector<int> nxt[N]; int x[N],y[N]; void create_circuit(int m,vector<int> a) { int n = a.size(); vector<int> c(m+1); a.push_back(0); for(int i = 0;i < n;i++) nxt[a[i]].push_back(a[i+1]); c[0] = a[0]; for(int i = 1;i <= m;i++) if(!nxt[i].empty()) { if(nxt[i].size()==1) c[i] = nxt[i][0]; else if(nxt[i].size()==2) { c[i] = ++sw; c[i] = -c[i]; x[sw] = nxt[i][0]; y[sw] = nxt[i][1]; } else if(nxt[i].size()==3) { int s1 = ++sw,s2 = ++sw,s3 = ++sw; c[i] = -s1; x[s1] = -s2; y[s1] = -s3; x[s2] = -s1; y[s2] = nxt[i][1]; x[s3] = nxt[i][0]; y[s3] = nxt[i][2]; } else { int s1 = ++sw,s2 = ++sw,s3 = ++sw; c[i] = -s1; x[s1] = -s2; y[s1] = -s3; x[s2] = nxt[i][0]; y[s2] = nxt[i][2]; x[s3] = nxt[i][1]; y[s3] = nxt[i][3]; } } vector<int> sx,sy; for(int i = 1;i <= sw;i++) sx.push_back(x[i]),sy.push_back(y[i]); answer(c,sx,sy); }
#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...