# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1018003 | 2024-07-09T12:31:44 Z | davit_tsibadze | Library (JOI18_library) | C++17 | 22 ms | 344 KB |
#include "library.h" #include <bits/stdc++.h> using namespace std; #define ff first #define sc second #define pb push_back #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> const ll inf = 1e18; // #define int long long vector <int> ans, m, a; bool isgood(int mid){ for (int i = 0; i < m.size(); i++) m[i] = 0; for (int i = 0; i <= mid; i++) m[a[i] - 1] = 1; int x = Query(m); m[ans.back() - 1] = 1; return (x == Query(m)); } void Solve(int N){ int d; while(m.size() < N)m.pb(1); for (int i = 1; i <= N; i++){ m[i - 1] = 0; if (Query(m) == 1){d = i; break;} m[i] = 1; } ans.pb(d); for (int i = 1; i <= N; i++) if (i != d)a.pb(i); while(a.size()){ int l = 0, r = a.size() - 1, mid, answ = a.size() - 1; while(l <= r){ mid = (l + r) / 2; if (isgood(mid)) { answ = mid; r = mid - 1; } else l = mid + 1; } swap(a[answ], a.back()); ans.pb(a.back()); a.pop_back(); } Answer(ans); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 22 ms | 344 KB | Wrong Answer [8] |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 22 ms | 344 KB | Wrong Answer [8] |
2 | Halted | 0 ms | 0 KB | - |