# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
654365 | 2022-10-31T07:55:26 Z | minhnhatnoe | 도서관 (JOI18_library) | C++14 | 468 ms | 328 KB |
#include "library.h" #include <bits/stdc++.h> using namespace std; int find_edge(int n){ vector<int> a(n, 1); for (int i=0; i<n; i++){ a[i] = 0; if (Query(a) == 1) return i; a[i] = 1; } throw runtime_error("Unreachable"); } vector<int> binsearch(int n, vector<int> &a, vector<int> &chosen){ vector<int> q(n); for (int i=a.size()/2-1; i>=0; i--) q[a[i]] = 1; int f = Query(q); for (int i: chosen) q[i] = 1; int s = Query(q); if (f == s){ vector<int> nxt; for (int i=a.size()/2-1; i>=0; i--) nxt.push_back(a[i]); return nxt; } else{ vector<int> nxt; for (int i=a.size()/2; i<a.size(); i++) nxt.push_back(a[i]); return nxt; } } vector<int> inverse(int n, vector<int> &chosen){ vector<bool> a(n, 1); for (int i: chosen) a[i] = false; vector<int> nxt; for (int i=0; i<a.size(); i++) if (a[i]) nxt.push_back(i); return nxt; } void Solve(int N){ int n = N; if (n == 1){ Answer({1}); return; } int left = find_edge(n); // cout << "LEFT: " << left+1 << " "; vector<int> chosen = {left}; for (int i=1; i<n; i++){ vector<int> cand = inverse(n, chosen); while (cand.size() != 1){ cand = binsearch(n, cand, chosen); } // cout << "CHOSE: " << cand[0] + 1 << " "; chosen.push_back(cand[0]); } for (int i=0; i<chosen.size(); i++) chosen[i]++; Answer(chosen); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 31 ms | 208 KB | # of queries: 2373 |
2 | Correct | 31 ms | 208 KB | # of queries: 2417 |
3 | Correct | 36 ms | 300 KB | # of queries: 2630 |
4 | Correct | 35 ms | 208 KB | # of queries: 2601 |
5 | Correct | 23 ms | 296 KB | # of queries: 2466 |
6 | Correct | 34 ms | 284 KB | # of queries: 2551 |
7 | Correct | 33 ms | 208 KB | # of queries: 2578 |
8 | Correct | 36 ms | 208 KB | # of queries: 2414 |
9 | Correct | 34 ms | 208 KB | # of queries: 2512 |
10 | Correct | 18 ms | 208 KB | # of queries: 1474 |
11 | Correct | 0 ms | 208 KB | # of queries: 0 |
12 | Correct | 0 ms | 208 KB | # of queries: 1 |
13 | Correct | 1 ms | 208 KB | # of queries: 4 |
14 | Correct | 1 ms | 208 KB | # of queries: 7 |
15 | Correct | 1 ms | 208 KB | # of queries: 79 |
16 | Correct | 3 ms | 208 KB | # of queries: 185 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 31 ms | 208 KB | # of queries: 2373 |
2 | Correct | 31 ms | 208 KB | # of queries: 2417 |
3 | Correct | 36 ms | 300 KB | # of queries: 2630 |
4 | Correct | 35 ms | 208 KB | # of queries: 2601 |
5 | Correct | 23 ms | 296 KB | # of queries: 2466 |
6 | Correct | 34 ms | 284 KB | # of queries: 2551 |
7 | Correct | 33 ms | 208 KB | # of queries: 2578 |
8 | Correct | 36 ms | 208 KB | # of queries: 2414 |
9 | Correct | 34 ms | 208 KB | # of queries: 2512 |
10 | Correct | 18 ms | 208 KB | # of queries: 1474 |
11 | Correct | 0 ms | 208 KB | # of queries: 0 |
12 | Correct | 0 ms | 208 KB | # of queries: 1 |
13 | Correct | 1 ms | 208 KB | # of queries: 4 |
14 | Correct | 1 ms | 208 KB | # of queries: 7 |
15 | Correct | 1 ms | 208 KB | # of queries: 79 |
16 | Correct | 3 ms | 208 KB | # of queries: 185 |
17 | Correct | 439 ms | 292 KB | # of queries: 18024 |
18 | Correct | 398 ms | 300 KB | # of queries: 17255 |
19 | Correct | 449 ms | 292 KB | # of queries: 17515 |
20 | Correct | 334 ms | 288 KB | # of queries: 16317 |
21 | Correct | 298 ms | 288 KB | # of queries: 15294 |
22 | Correct | 430 ms | 300 KB | # of queries: 17643 |
23 | Correct | 415 ms | 288 KB | # of queries: 17186 |
24 | Correct | 178 ms | 288 KB | # of queries: 7889 |
25 | Correct | 423 ms | 328 KB | # of queries: 17098 |
26 | Correct | 371 ms | 292 KB | # of queries: 16019 |
27 | Correct | 155 ms | 300 KB | # of queries: 8026 |
28 | Correct | 452 ms | 292 KB | # of queries: 17917 |
29 | Correct | 468 ms | 328 KB | # of queries: 17897 |
30 | Correct | 398 ms | 288 KB | # of queries: 17917 |