# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
965150 | 2024-04-18T07:48:14 Z | Darren0724 | Ancient Machine 2 (JOI23_ancient2) | C++17 | 148 ms | 1420 KB |
#include "ancient2.h" //#include "grader.cpp" #include<bits/stdc++.h> using namespace std; const int lim=1000; string Solve(int N) { string ans; while(ans.size()<N){ vector<int> a,b; int sz=ans.size(); for(int i=0;i<sz;i++){ a.push_back(i+1); b.push_back(i+1); } int last=-1; int st=sz+1; int p=1; int bit=0; while(sz+bit<N&&st+p*2-1<lim){ for(int i=0;i<p;i++){ a.push_back(st++); b.push_back(st++); } bit++; last=st; p<<=1; //cout<<bit<<' '<<st<<' '<<p<<' '<<lim<<endl; } while(a.size()<lim){ a.push_back(a.size()); b.push_back(b.size()); } int r=Query(lim,a,b); r-=sz; string t; for(int i=0;i<bit;i++){ if(r&1){ t.push_back('0'); } else{ t.push_back('1'); } r=(r-1)/2; } reverse(t.begin(),t.end()); ans+=t; } //cout<<ans<<endl; return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 148 ms | 1420 KB | Wrong Answer [7] |
2 | Halted | 0 ms | 0 KB | - |