Submission #1080527

#TimeUsernameProblemLanguageResultExecution timeMemory
1080527MihailoUnscrambling a Messy Bug (IOI16_messy)C++17
100 / 100
2 ms604 KiB
#include <bits/stdc++.h> #define pb push_back using namespace std; #include "messy.h" int N; vector<int> pp; void start(int l, int r) { if(l==r) return; string s=""; for(int i=0; i<l; i++) s+='1'; for(int i=l; i<=r; i++) s+='0'; for(int i=r+1; i<N; i++) s+='1'; int m=(l+r)/2; for(int i=l; i<=m; i++) { s[i]='1'; add_element(s); s[i]='0'; } start(l, m); start(m+1, r); } void finish(int l, int r, vector<int> ostali, vector<int> ovde) { //cout<<l<<' '<<r<<' '<<ovde.size()<<' '<<ostali.size()<<'\n'; if(l==r) { pp[ovde[0]]=l; return; } string s=""; vector<int> a, b; for(int i=0; i<N; i++) s+='0'; for(int i:ostali) s[i]='1'; for(int i:ovde) { s[i]='1'; if(check_element(s)) { a.pb(i); } else { b.pb(i); } s[i]='0'; } for(int i=0; i<b.size(); i++) { ostali.pb(b[i]); } int m=(l+r)/2; finish(l, m, ostali, a); for(int i=0; i<b.size(); i++) { ostali.pop_back(); } for(int i=0; i<a.size(); i++) { ostali.pb(a[i]); } finish(m+1, r, ostali, b); } vector<int> restore_permutation(int n, int w, int r) { N=n; for(int i=0; i<N; i++) pp.pb(-1); start(0, N-1); compile_set(); vector<int> v, em; for(int i=0; i<N; i++) v.pb(i); finish(0, N-1, em, v); return pp; }

Compilation message (stderr)

messy.cpp: In function 'void finish(int, int, std::vector<int>, std::vector<int>)':
messy.cpp:45:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |     for(int i=0; i<b.size(); i++) {
      |                  ~^~~~~~~~~
messy.cpp:50:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |     for(int i=0; i<b.size(); i++) {
      |                  ~^~~~~~~~~
messy.cpp:53:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |     for(int i=0; i<a.size(); i++) {
      |                  ~^~~~~~~~~
#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...