Submission #1216776

#TimeUsernameProblemLanguageResultExecution timeMemory
1216776cowwycowSuper Dango Maker (JOI22_dango3)C++20
0 / 100
1594 ms944 KiB
#include <bits/stdc++.h> #include "dango3.h" using namespace std; #define name "aaaaaa" #define fi first #define se second using ll = long long; using db = double; using ld = long double; using pii = pair<int, int>; using pll = pair<ll, ll>; using ppii = pair<int, pii>; const int N = 405, M = 30, K = N * M; int n, m; int a[K]; int pos[K]; int ask(vector<int> v){ cout << v.size() << ' '; for(int i : v){ cout << i << ' '; } cout << endl; int res; cin >> res; return res; } bool b[K]; bool ck(int mid, int id){ vector<int> v; for(int i = 1; i <= n * m; i++){ b[i] = false; } b[id] = true; for(int i = 1; i <= mid; i++){ b[pos[i]] = true; } for(int i = 1; i <= n * m; i++){ if(b[i] == false) v.push_back(i); } if(Query(v) == m - 2){ return true; }else{ return false; } } vector<int> gay[K]; void Solve(int n2, int m2){ n = n2, m = m2; a[1] = 1; pos[1] = 1; int dif = 1; for(int i = 2; i <= n * m; i++){ int l = 1, r = min(n, dif + 1), mid; while(l < r){ mid = (l + r) / 2; if(ck(mid, i)){ r = mid; }else{ l = mid + 1; } } a[i] = l; pos[l] = i; if(a[i] > dif){ dif = a[i]; } } for(int i = 1; i <= n * m; i++){ gay[a[i]].push_back(i); } for(int i = 0; i < m; i++){ vector<int> cur; for(int j = 1; j <= n; j++){ cur.push_back(gay[j][i]); Answer(cur); } cur.clear(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...