Submission #1154800

#TimeUsernameProblemLanguageResultExecution timeMemory
1154800AlgorithmWarriorUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms584 KiB
#include <vector> #include <cstdio> #include <string> #include <set> #include <cstdlib> #include <iostream> #include "messy.h" using namespace std; string send_string(int l,int r,int ind,int n){ string sir; int i; for(i=0;i<n;++i) if(i<l || i>r || i==ind) sir.push_back('1'); else sir.push_back('0'); return sir; } void send_all_strings(int l,int r,int n){ if(l<r){ int mij=(l+r)/2; int i; for(i=l;i<=mij;++i) add_element(send_string(l,r,i,n)); send_all_strings(l,mij,n); send_all_strings(mij+1,r,n); } } struct interval{ int l,r; }ans[128]; string get_string(int ind,int n){ string sir; int i; for(i=0;i<n;++i) if((ans[i].l!=ans[ind].l && ans[i].r!=ans[ind].r) || i==ind) sir.push_back('1'); else sir.push_back('0'); return sir; } vector<int> restore_permutation(int n, int w, int r) { send_all_strings(0,n-1,n); compile_set(); int i,j; for(i=0;i<n;++i){ ans[i].l=0; ans[i].r=n-1; } for(j=n/2;j;j/=2) for(i=0;i<n;++i){ int mij=(ans[i].l+ans[i].r)/2; if(check_element(get_string(i,n))) ans[i].r=mij; else ans[i].l=mij+1; } vector<int>answer; for(i=0;i<n;++i) answer.push_back(ans[i].l); return answer; }

Compilation message (stderr)

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...