Submission #1230346

#TimeUsernameProblemLanguageResultExecution timeMemory
1230346VMaksimoski008Mechanical Doll (IOI18_doll)C++20
16 / 100
48 ms11924 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; void create_circuit(int m, vector<int> a) { vector<int> c(m+1), x, y; for(int i=1; i<=m; i++) c[i] = i; c[0] = a[0]; int n = a.size(); a.push_back(0); vector<int> mp[m+1]; for(int i=0; i<=n; i++) mp[a[i]].push_back(i); int id = 1; vector<bool> vis(m+1); for(int i=1; i<=m; i++) { if(vis[i]) continue; if(mp[i].size() == 1) { int p = mp[i][0]; c[i] = a[p+1]; } else if(mp[i].size() == 2) { c[i] = -id; int p1 = mp[i][0], p2 = mp[i][1]; x.push_back(a[p1+1]); y.push_back(a[p2+1]); id++; } else if(mp[i].size() == 4) { c[i] = -id; x.push_back(-id-1); y.push_back(-id-2); x.push_back(a[ mp[i][0]+1 ]); y.push_back(a[ mp[i][2]+1 ]); x.push_back(a[ mp[i][1]+1 ]); y.push_back(a[ mp[i][3]+1 ]); id += 3; } else if(mp[i].size() == 3) { c[i] = -id; x.push_back(-id-1); y.push_back(-id-2); x.push_back(a[ mp[i][0]+1 ]); y.push_back(-id); x.push_back(a[ mp[i][1]+1 ]); y.push_back(a[ mp[i][2]+1 ]); id += 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...