Submission #560091

#TimeUsernameProblemLanguageResultExecution timeMemory
560091two_sidesSuper Dango Maker (JOI22_dango3)C++17
100 / 100
3948 ms732 KiB
#include "dango3.h" #include <vector> #include <iostream> namespace { using namespace std; } void Solve(int n, int m) { vector<vector<int>> a(m); vector<char> v(n * m + 1); for (int i = 1; i <= n * m; i++) { int lo = 0, hi = m - 1; while (a[lo].size() == n) lo++; while (hi && a[hi - 1].empty()) hi--; while (lo < hi) { int mi = (lo + hi) / 2; fill(v.begin(), v.end(), 0); for (int j : a[mi]) v[j] = true; v[i] = true; vector<int> b; for (int j = 1; j <= n * m; j++) if (!v[j]) b.push_back(j); if (m == Query(b) + 1) hi = mi; else lo = mi + 1; } a[hi].push_back(i); } for (int i = 0; i < m; i++) Answer(a[i]); }

Compilation message (stderr)

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:14:29: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |         while (a[lo].size() == n) lo++;
      |                ~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...