Submission #640089

#TimeUsernameProblemLanguageResultExecution timeMemory
640089victor_gaoSuper Dango Maker (JOI22_dango3)C++17
22 / 100
387 ms760 KiB
#include<bits/stdc++.h> #include "dango3.h" using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); void Solve(int N,int M){ int B[30]={0,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4}; deque<int>all; for (int i=1;i<=N*M;i++) all.push_back(i); for (int i=M;i>=1;i--){ bool find=1; int cnt=0; while (find){ cnt++; shuffle(all.begin(),all.end(),rng); vector<int>now; vector<int>ok,no; int sz=all.size(); for (int j=0;j<sz/B[i];j++){ now.push_back(all[sz+j-sz/B[i]]); } int Q=Query(now); if (Q==0) continue; else { int nsz=now.size(); for (int j=0;j<nsz;j++){ int out=now.back(); now.pop_back(); all.pop_back(); int nq=Query(now); if (nq==0){ now.insert(now.begin(),out); } else no.push_back(out); } for (auto j:no) all.push_back(j); if (now.size()!=N){ assert(0); } find=0; Answer(now); } assert(cnt<=500); } } }

Compilation message (stderr)

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:38:31: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |                 if (now.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...