Submission #823203

#TimeUsernameProblemLanguageResultExecution timeMemory
823203TrumlingMechanical Doll (IOI18_doll)C++14
16 / 100
63 ms12396 KiB
#include "doll.h" #include<bits/stdc++.h> using namespace std; #define F first #define S second #define all(x) x.begin(),x.end() typedef long long ll; #define INF 99999999999999 #define pb push_back void create_circuit(int M, std::vector<int> A) { int N = A.size(); A.pb(0); vector<int> C(M + 1); vector<vector<int>>vis(M+1); vector<int>sw(M+1,0); ll idx=0; vector<int> X, Y; C[0]=A[0]; for(int i=0;i<N;i++) vis[A[i]].pb(i); for(int i=1;i<=M;i++) { if(!vis[i].size()) continue; if(vis[i].size()==1) { C[i]=A[vis[i][0]+1]; continue; } if(vis[i].size()==2) { C[i]=-(idx+1); X.pb(A[vis[i][0]+1]); Y.pb(A[vis[i][1]+1]); idx++; continue; } if(vis[i].size()==3) { C[i]=-(idx+1); X.pb(-(idx+2)); Y.pb(-(idx+3)); X.pb(A[vis[i][0]+1]); Y.pb(-(idx+1)); X.pb(A[vis[i][1]+1]); Y.pb(A[vis[i][2]+1]); idx+=3; continue; } C[i]=-(idx+1); X.pb(-(idx+2)); Y.pb(-(idx+3)); X.pb(A[vis[i][0]+1]); Y.pb(A[vis[i][2]+1]); X.pb(A[vis[i][1]+1]); Y.pb(A[vis[i][3]+1]); idx+=3; } 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...