Submission #240773

#TimeUsernameProblemLanguageResultExecution timeMemory
240773NONAMEZagonetka (COI18_zagonetka)C++14
9 / 100
12 ms384 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; const int N = 1e5 + 500; int n, p[N]; vector <int> cur, mn, mx; bool mk[N]; bool gd(vector <int> q) { cout << "query "; for (int i : q) cout << i << " "; cout << endl; bool x; cin >> x; return x; } void upd(vector <int> &v1, vector <int> v2, bool f) { if (v1.empty()) { v1 = v2; return; } int i = 0; while (i < n) { if (v1[i] != v2[i]) break; ++i; } if (i == n) return; if (f && v2[i] > v1[i]) v1 = v2; if (!f && v2[i] < v1[i]) v1 = v2; } void rec(int k) { if (k == n) { if (gd(cur)) { upd(mn, cur, 0); upd(mx, cur, 1); } return; } for (int i = 1; i <= n; ++i) { if (mk[i]) continue; cur.push_back(i); mk[i] = 1; rec(k + 1); mk[i] = 0; cur.pop_back(); } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 0; i < n; ++i) cin >> p[i]; if (n <= 6) { rec(0); cout << "end" << endl; for (int i : mn) cout << i << " "; cout << endl; for (int i : mx) cout << i << " "; cout << endl; return 0; } cout << "end" << endl; for (int i = 1; i <= n; ++i) cout << i << " "; cout << endl; for (int i = n; i >= 1; --i) cout << i << " "; cout << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...