Submission #1266301

#TimeUsernameProblemLanguageResultExecution timeMemory
1266301nguynSuper Dango Maker (JOI22_dango3)C++20
0 / 100
1014 ms676 KiB
#include "dango3.h" #include <bits/stdc++.h> #define pb push_back using namespace std; namespace { int variable_example = 1; } // namespace mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int rnd(int l, int r) { return uniform_int_distribution<int>(l, r)(rng); } unsigned seed = chrono::steady_clock::now().time_since_epoch().count(); void Solve(int N, int M) { vector<int> vis(N * M + 1, 0); vector<vector<int>> ans; for (int ite = 1; ite < M; ite++) { vector<int> vec; for (int i = 1; i <= N * M; i++) { if (!vis[i]) vec.pb(i); } shuffle(vec.begin(), vec.end(), default_random_engine(seed)); vector<int> cur; cur.pb(vec[0]); vis[vec[0]] = 1; vector<int> ask = vec; ask.erase(find(ask.begin(), ask.end(), vec[0])); for (int i = 1; i < vec.size(); i++) { ask.erase(find(ask.begin(), ask.end(), vec[i])); int cnt = Query(ask); if (cnt != M - 1) ask.pb(vec[i]); else { cur.pb(vec[i]); vis[vec[i]] = 1; } if (cur.size() == N) break; } ans.pb(cur); } vector<int> cur; for (int i = 1; i <= N * M; i++) { if (vis[i] == 0) cur.pb(i); } ans.pb(cur); for (auto vec : ans) { // for (auto i : vec) cout << i << ' '; // cout << '\n'; Answer(vec); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...