Submission #65294

#TimeUsernameProblemLanguageResultExecution timeMemory
65294mhndUnscrambling a Messy Bug (IOI16_messy)C++17
0 / 100
2 ms384 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 3e5+50; const ll oo = 1e18; const ll mod = 1e9+7; int n; vector<int> ans; void add(int l,int r){ if (l + 1 == r) return; int m = l + r >> 1; string s = ""; for (int i = 0; i < n; ++i) { s += '1'; } for (int i = l; i < r; ++i) { s[i] = '0'; } for (int i = l; i < m; ++i) { s[i] = '1'; add_element(s); s[i] = '0'; } add(l, m); add(m, r); } void ask(int l,int r,string s){ if(l > r){ for(int i=0;i<n;i++) if(s[i] == '0'){ ans[i] = l; return; } } string x=s,y=""; for(int i=0;i<n;i++)y+='1'; for(int i=0;i<n;i++){ if(s[i] == '0'){ s[i]='1'; if(check_element(s)){ x[i] = '1'; y[i] = '0'; } s[i]='0'; } } int md = (l+r)/2; ask(l,md,y); ask(md,r,x); } vector<int> restore_permutation(int N, int w, int r) { int n = N; add(0,n); compile_set(); ans.resize(n); string a = ""; for(int i=0;i<n;i++)a += '0'; ask(0,n,a); return ans; }

Compilation message (stderr)

messy.cpp: In function 'void add(int, int)':
messy.cpp:17:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int m = l + r >> 1;
           ~~^~~
#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...