# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1017969 | 2024-07-09T12:06:23 Z | davit_tsibadze | 도서관 (JOI18_library) | C++17 | 15 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; 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;} } vector <int> a, ans; 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; while(l < r){ mid = (l + r) / 2; 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; int y = Query(m); if (x == y)r = mid; else l = mid + 1; } swap(a[l], a[a.size() - 1]); ans.pb(a.back()); a.pop_back(); } Answer(ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 15 ms | 344 KB | Wrong Answer [8] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 15 ms | 344 KB | Wrong Answer [8] |
2 | Halted | 0 ms | 0 KB | - |