Submission #561624

#TimeUsernameProblemLanguageResultExecution timeMemory
561624DanShadersSuper Dango Maker (JOI22_dango3)C++17
100 / 100
792 ms784 KiB
//bs:sanitizers,flags:grader.cpp #include "dango3.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; namespace x = __gnu_pbds; template <typename T> using ordered_set = x::tree<T, x::null_type, less<T>, x::rb_tree_tag, x::tree_order_statistics_node_update>; template <typename T> using normal_queue = priority_queue<T, vector<T>, greater<>>; #define all(x) begin(x), end(x) #define sz(x) ((int) (x).size()) #define x first #define y second using ll = long long; using ld = long double; void rec(const vector<int> &inds, int m) { // cout << m << ": "; // for (int u : inds) { // cout << u << " "; // } // cout << "\n"; if (m == 1) { Answer(inds); return; } int mid = m / 2; vector<int> lef, rig = inds; for (int i : inds) { rig.erase(find(all(rig), i)); if (Query(rig) < mid) { // cout << "" << i << " remains in rig" << endl; rig.push_back(i); } else { // cout << "add " << i << " to lef" << endl; lef.push_back(i); } } rec(lef, m - mid); rec(rig, mid); } void Solve(int n, int m) { vector<int> inds(n * m); iota(all(inds), 1); rec(inds, m); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...