Submission #961234

#TimeUsernameProblemLanguageResultExecution timeMemory
961234Ahmed57Unscrambling a Messy Bug (IOI16_messy)C++17
0 / 100
2 ms604 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; string build(vector<int> x,int n){ string s; for(int i = 0;i<n;i++)s+='0'; for(auto i:x)s[i] = '1'; return s; } vector<int> restore_permutation(int n, int w, int r){ add_element(build({0},n)); for(int i = 1;i<n;i*=2){ for(int j = 0;j<n;j+=2*i){ vector<int> nah,nah2; for(int e = j;e<j+2*i;e++){ nah.push_back(e); } for(int e = j;e<=j+i;e++){ nah2.push_back(e); } add_element(build(nah,n)); if(i==1&&j==0)continue; if(i==1){ nah2.pop_back(); nah2.push_back(0); add_element(build(nah2,n)); continue; } add_element(build(nah2,n)); } } compile_set(); vector<vector<int>> comps; int ind = 0; for(int i = 0;i<n;i++){ if(check_element(build({i},n))){ ind = i; } comps.push_back({i}); } while(comps.size()!=1){ vector<vector<int>> ncomps; for(int i = 0;i<comps.size();i++){ for(int j = i+1;j<comps.size();j++){ vector<int> comb,comb2,rev; for(auto e:comps[i])comb.push_back(e); for(auto e:comps[j])comb.push_back(e); for(auto e:comps[j])rev.push_back(e); for(auto e:comps[i])rev.push_back(e); for(auto e:comps[i])comb2.push_back(e); comb2.push_back(comps[j][0]); if(comps.size()==n){ comb2.pop_back(); comb2.push_back(ind); if(comps[i][0]==ind){ ncomps.push_back(comb); }else if(comps[j][0]==ind){ ncomps.push_back(rev); }else{ if(check_element(build(comb2,n))){ ncomps.push_back(comb); }else ncomps.push_back(rev); } }else{ if(check_element(build(comb2,n))){ ncomps.push_back(comb); }else ncomps.push_back(rev); } } } comps = ncomps; } return comps[0]; } /* int main(){ }*/

Compilation message (stderr)

messy.cpp: In function 'std::vector<int> restore_permutation(int, int, int)':
messy.cpp:44:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |         for(int i = 0;i<comps.size();i++){
      |                       ~^~~~~~~~~~~~~
messy.cpp:45:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |             for(int j = i+1;j<comps.size();j++){
      |                             ~^~~~~~~~~~~~~
messy.cpp:53:32: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   53 |                 if(comps.size()==n){
      |                    ~~~~~~~~~~~~^~~
#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...