Submission #1213811

#TimeUsernameProblemLanguageResultExecution timeMemory
1213811dostsSuper Dango Maker (JOI22_dango3)C++20
100 / 100
1172 ms752 KiB
#include "dango3.h" #include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") //#define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define sp << " " << #define all(x) x.begin(),x.end() #define big(x) ((int)(x.size())) using namespace std; const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9; void Solve(int N, int M) { vector<vi> sisler(M+1); vi rem; for (int i=1;i<=N*M;i++) rem.push_back(i); for (int i=1;i<=N*M;i++) { int x = rem.back(); rem.pop_back(); int l = 1; int r = M; while (l <= r) { int m = (l+r) >> 1; vi toask; for (auto it : rem) toask.push_back(it); for (int j = 1;j<=M;j++) { if (j == m) { continue; } for (auto it : sisler[j]) toask.push_back(it); } if (Query(toask) == M-1) r = m-1; else l = m+1; } assert(l >= 1 && l <= M); sisler[l].push_back(x); } for (int i=1;i<=M;i++) { assert(sisler[i].size() == N); sort(all(sisler[i])); Answer(sisler[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...