Submission #915738

#TimeUsernameProblemLanguageResultExecution timeMemory
915738IBorySuper Dango Maker (JOI22_dango3)C++17
100 / 100
640 ms856 KiB
#include "dango3.h" #include <bits/stdc++.h> #include <random> using namespace std; const int MAX = 10004; int V[MAX]; void Solve(int N, int M) { random_device rd; vector<int> P; for (int i = 1; i <= N * M; ++i) P.push_back(i); for (int t = 1; t <= M; ++t) { vector<int> G, T; shuffle(P.begin(), P.end(), rd); for (int i = 0; i < N * M; ++i) { if (V[P[i]]) continue; G.push_back(P[i]); } if (G.size() == N) { Answer(G); return; } T.push_back(G.back()); G.pop_back(); int idx = 0; while (T.size() < N) { swap(G[idx], G[G.size() - 1]); int n = G.back(); G.pop_back(); if (Query(G) == M - t) T.push_back(n); else { G.push_back(n); swap(G[idx], G[G.size() - 1]); idx++; } } Answer(T); for (int n : T) V[n] = 1; } }

Compilation message (stderr)

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:23:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |   if (G.size() == N) {
      |       ~~~~~~~~~^~~~
dango3.cpp:30:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   30 |   while (T.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...