Submission #951648

#TimeUsernameProblemLanguageResultExecution timeMemory
951648pccSuper Dango Maker (JOI22_dango3)C++17
7 / 100
182 ms644 KiB
#include "dango3.h" #include <bits/stdc++.h> #include <vector> using namespace std; namespace { const int mxn = 1e5+10; vector<int> perm; bitset<mxn> done; int ask(vector<int> vv){ for(auto &i:vv)i = perm[i]; //cerr<<"ASK:";for(auto &i:vv)cerr<<i<<' ';cerr<<endl; return Query(vv); } } // namespace /* std::vector<int> x(3); x[0] = 1; x[1] = 2; x[2] = 3; variable_example = Query(x); for (int i = 0; i < M; i++) { std::vector<int> a(N); for (int j = 0; j < N; j++) { a[j] = N * i + j + 1; } Answer(a); } */ void Solve(int N, int M) { perm.push_back(0); for(int i = 1;i<=N*M;i++)perm.push_back(i); mt19937 seed(time(NULL)); shuffle(perm.begin()+1,perm.end(),seed); for(int i = 1;i<=M;i++){ vector<int> v; for(int j = 1;j<=N*M;j++){ if(done[j])continue; v.push_back(j); if(ask(v) != 0)break; } while(v.size()>N){ auto tmp = v.back(); v.pop_back(); if(ask(v) == 0)v.insert(v.begin(),tmp); //for(auto &j:v)cerr<<j<<' ';cerr<<endl; } for(auto &j:v)done[j] = true; //cerr<<"ANS:";for(auto &j:v)cerr<<j<<' ';cerr<<endl; for(auto &j:v)j = perm[j]; Answer(v); } return; }

Compilation message (stderr)

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