Submission #316598

#TimeUsernameProblemLanguageResultExecution timeMemory
316598nafis_shifatUnscrambling a Messy Bug (IOI16_messy)C++14
100 / 100
3 ms512 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; vector<int> res; int N; void add(int l,int r) { if(l == r) return; string s; for(int i = 0; i < N; i++) { if(i >= l && i <= r) s+='0'; else s+='1'; } int mid = l + r >> 1; for(int i = l; i <= mid; i++) { s[i] = '1'; add_element(s); s[i] = '0'; } add(l,mid); add(mid + 1, r); } void check(int l,int r,vector<int> v) { if(l == r) { res[l] = v[0]; return; } string s; for(int i = 0; i < N; i++) s += '1'; for(int i : v) s[i] = '0'; int mid = l + r >> 1; vector<int> left,right; for(int i : v) { s[i] = '1'; if(check_element(s)) left.push_back(i); else right.push_back(i); s[i] = '0'; } check(l,mid,left); check(mid+1,r,right); } vector<int> restore_permutation(int n, int w, int r) { N = n; add(0,n-1); compile_set(); vector<int> tmp(n); iota(tmp.begin(),tmp.end(),0); res.resize(n); check(0,n-1,tmp); vector<int> fr(n); for(int i = 0; i < N; i++) { fr[res[i]] = i; } return fr; }

Compilation message (stderr)

messy.cpp: In function 'void add(int, int)':
messy.cpp:14:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   14 |  int mid = l + r >> 1;
      |            ~~^~~
messy.cpp: In function 'void check(int, int, std::vector<int>)':
messy.cpp:38:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   38 |  int mid = 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...