Submission #1175819

#TimeUsernameProblemLanguageResultExecution timeMemory
1175819thelegendary08Super Dango Maker (JOI22_dango3)C++17
0 / 100
14 ms584 KiB
#include "dango3.h" #include<bits/stdc++.h> #define pb push_back #define vi vector<int> #define f0r(i,n) for(int i = 0; i<n; i++) using namespace std; vi perm; int ask(vi quer){ vi q; // cout<<"QUER "<<' '; for(auto u : quer){ q.pb(perm[u]); // cout<<u<<' '; } // cout<<'\n'; int x = Query(q); return x; } void ans(vi a){ vi ret; for(auto u : a){ ret.pb(perm[u]); } Answer(ret); } void Solve(int N, int M) { f0r(i, N*M){ perm.pb(i + 1); } random_shuffle(perm.begin(), perm.end()); // for(auto u : perm)cout<<u<<' '; // cout<<'\n'; vi v; f0r(i, N*M){ v.pb(i); } while(v.size() != 0){ int lst = v.size(); vi fx; while(fx.size() < N){ // cout<<lst<<'\n'; int lo = 0; int hi = lst - 1; while(lo < hi){ // cout<<lo<<' '<<hi<<'\n'; int mid = (lo + hi) / 2; vi quer; for(auto u : fx){ quer.pb(v[u]); } f0r(i, mid){ quer.pb(v[i]); } int x = ask(quer); if(x >= 1){ hi = mid; } else{ lo = mid + 1; } } lst = lo; fx.pb(v[lst]); } ans(fx); for(auto u : fx){ v.erase(find(v.begin(), v.end(), u)); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...