제출 #661270

#제출 시각아이디문제언어결과실행 시간메모리
661270Alex_tz307Super Dango Maker (JOI22_dango3)C++17
100 / 100
3930 ms884 KiB
#include <bits/stdc++.h> #include "dango3.h" using namespace std; const int kLog = 4; void Solve(int N, int M) { vector<vector<int>> groups(M); auto check = [&](const vector<int> &a) -> bool { vector<bool> mark(1 + N * M); for (const int &x : a) { mark[x] = true; } vector<int> q; for (int i = 1; i <= N * M; ++i) { if (!mark[i]) { q.emplace_back(i); } } int res = M - Query(q); return (res == 2); }; for (int i = 1; i <= N * M; ++i) { int colour = 0; if (i != 1) { for (int k = kLog; k >= 0; --k) { int newColour = (colour | (1 << k)); if (newColour < M) { groups[newColour - 1].emplace_back(i); if (check(groups[newColour - 1])) { colour = newColour; } groups[newColour - 1].pop_back(); } } } groups[colour].emplace_back(i); } for (int i = 0; i < M; ++i) { Answer(groups[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...