Submission #544815

#TimeUsernameProblemLanguageResultExecution timeMemory
544815Ronin13Super Dango Maker (JOI22_dango3)C++17
100 / 100
4077 ms800 KiB
#include "dango3.h" #include <bits/stdc++.h> #define ll long long #define f first #define s second #define ull unsigned ll #define pll pair<ll,ll> #define pb push_back #define epb emplace_back using namespace std; void Solve(int N, int M) { int n = N; int m = M; vector <vector<int> > dango(m + 1); vector <bool> used(n * m + 1, false); for(int i = 1; i <= n * m; i++){ int l = 0, r = m; used[i] = true; while(l + 1 < r){ int mid = (l + r) / 2; for(int to : dango[mid]) used[to] = true; vector <int> vec; for(int j = 1; j <= n * m; j++){ if(!used[j]) vec.pb(j); } for(int to : dango[mid]) used[to] = false; int x = Query(vec); if(x <= m - 2)l = mid; else r = mid; } used[i] = false; dango[r].pb(i); } for(int i = 1; i <= m; i++){ Answer(dango[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...