Submission #821406

#TimeUsernameProblemLanguageResultExecution timeMemory
821406Dan4LifeMechanical Doll (IOI18_doll)C++17
6 / 100
52 ms17068 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; using vi = vector<int>; #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) const int mxN = (int)2e5+10; int n, m; bool vis[mxN]; vi a, v[mxN]; void getAns(){ vi C(m+1); C[0] = a[0]; for(int i = 0; i < n-1; i++) v[a[i]].pb(i); for(int i = 1; i <= m; i++) C[i] = i; int S = 0; vi X, Y; for(int i = 0; i < n-1; i++){ if(!vis[a[i]]){ if(sz(v[a[i]])==2){ S++; C[a[i]] = -S; X.pb(a[i+1]), Y.pb(a[v[a[i]][1]+1]); } else C[a[i]] = a[i+1]; } vis[a[i]] = 1; } answer(C, X, Y); } void create_circuit(int M, vi A) { m = M; a = A; a.push_back(0); n = sz(a); getAns(); }
#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...