Submission #541785

#TimeUsernameProblemLanguageResultExecution timeMemory
541785status_codingUnscrambling a Messy Bug (IOI16_messy)C++14
0 / 100
1 ms440 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; string s; vector<int> ans; void genQuery(int st, int dr) { int mij=(st+dr)/2; for(int i=st; i<=mij; i++) { s[i]='1'; add_element(s); s[i]='0'; } for(int i=mij+1; i<=dr; i++) s[i]='1'; genQuery(st, mij); for(int i=mij+1; i<=dr; i++) s[i]='0'; for(int i=st; i<=mij; i++) s[i]='1'; genQuery(mij+1, dr); } void genAns(int st, int dr, vector<int> v) { if(st == dr) { ans[st] = v[0]; return; } int mij=(st+dr)/2; vector<int> vL, vR; for(int it : v) { s[it]='1'; if(check_element(s)) vL.push_back(it); else vR.push_back(it); } for(int it : vR) s[it]='1'; genAns(st, mij, vL); for(int it : vR) s[it]='0'; for(int it : vL) s[it]='1'; genAns(mij+1, dr, vR); } vector<int> restore_permutation(int n, int w, int r) { s.resize(n); ans.resize(n); for(int i=0; i<n; i++) s[i]='0'; genQuery(0, n-1); compile_set(); for(int i=0; i<n; i++) s[i]='0'; vector<int> aux; for(int i=0;i<n;i++) aux.push_back(i); genAns(0, n-1, aux); return ans; }
#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...