Submission #905958

#TimeUsernameProblemLanguageResultExecution timeMemory
905958daoquanglinh2007Super Dango Maker (JOI22_dango3)C++17
100 / 100
2134 ms1136 KiB
#include "dango3.h" #include <bits/stdc++.h> using namespace std; int N, M; bool mark[10005]; int Ask(vector <int> &v){ memset(mark, 0, sizeof(mark)); for (int i : v) mark[i] = 1; vector <int> sv(0); for (int i = 1; i <= N*M; i++) if (!mark[i]) sv.push_back(i); return M-Query(sv); } void Solve(int a, int b) { N = a, M = b; vector <int> g[M+1], v; for (int i = 1; i <= M; i++) g[i].clear(); for (int i = 1; i <= N*M; i++){ int l = 1, r = M, res = -1; while (l <= r){ int mid = (l+r)/2; v.clear(); for (int j = 1; j <= mid; j++) for (int x : g[j]) v.push_back(x); v.push_back(i); if (Ask(v) <= mid){ res = mid; r = mid-1; } else l = mid+1; } g[res].push_back(i); } for (int i = 1; i <= M; i++) Answer(g[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...