Submission #160505

#TimeUsernameProblemLanguageResultExecution timeMemory
160505oolimryUnscrambling a Messy Bug (IOI16_messy)C++14
100 / 100
9 ms632 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; std::vector<int> restore_permutation(int n, int w, int r) { for(int bit = n >> 1;bit > 0;bit >>= 1){ for(int i = 0;i < n;i++){ if(i & bit){ string s = ""; for(int j = 0;j < n;j++){ if(i == j) s += "1"; else{ if(j / (bit*2) == i / (bit*2)) s += "0"; else s += "1"; } } add_element(s); } } } vector<int> answer; compile_set(); typedef pair<int,int> ii; vector<ii> current; vector<ii> nxt; for(int i = 0;i < n;i++){ current.push_back(ii(i,0)); } for(int t = 0;t < log2(n);t++){ sort(current.begin(),current.end()); for(int i = 0;i < n;i++){ string s = ""; for(int j = 0;j < n;j++){ if(i == j) s += "1"; else if(current[i].second == current[j].second) s += "0"; else s += "1"; } if(check_element(s)){ nxt.push_back(ii(current[i].first,current[i].second*2+1)); } else{ nxt.push_back(ii(current[i].first,current[i].second*2)); } } current.clear(); for(ii x : nxt) current.push_back(x); nxt.clear(); } for(ii x : current){ answer.push_back(x.second); } return answer; }
#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...