# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
268656 | 2020-08-16T16:17:52 Z | DavidDamian | Library (JOI18_library) | C++11 | 458 ms | 384 KB |
#include<bits/stdc++.h> #include "library.h" using namespace std; set<int> S; //Set with non fixed numbers vector<int> Q; vector<int> Q2; vector<int> disc; bool inRange(int L,int R) { for(int i=L;i<=R;i++){ Q[i-1]=1; if(disc[i-1]==0) Q2[i-1]=1; } int A=Query(Q); int B=Query(Q2); for(int i=L;i<=R;i++){ Q2[i-1]=0; if(!disc[i-1]) Q[i-1]=0; } return A==B; } int binarySearch(int N) { int L=1; int R=N; int x; while(L<R){ int mid=(L+R)/2; auto it=S.lower_bound(L); int minimum=(*it); if(minimum<=mid && inRange(L,mid)) R=mid; else L=mid+1; } if(L==R) x=L; return x; } void Solve(int N) { vector<int> ANS(N); if(N==1){ ANS[0]=1; Answer(ANS); return; } Q.resize(N); Q2.resize(N); disc.resize(N); for(int i=1;i<=N;i++){ S.insert(i); Q[i-1]=1; } for(int i=1;i<=N;i++){ Q[i-1]=0; if(Query(Q)==1){ ANS[0]=i; S.erase(i); disc[i-1]=1; break; } Q[i-1]=1; } for(int i=1;i<=N;i++){ Q[i-1]=0; } Q[ ANS[0]-1 ]=1; int i=1; while(S.size()){ int nxt=binarySearch(N); ANS[i++]=nxt; S.erase(nxt); disc[nxt-1]=1; Q[nxt-1]=1; } Answer(ANS); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 44 ms | 384 KB | # of queries: 2749 |
2 | Correct | 30 ms | 384 KB | # of queries: 2787 |
3 | Correct | 39 ms | 256 KB | # of queries: 3004 |
4 | Correct | 41 ms | 384 KB | # of queries: 2921 |
5 | Correct | 39 ms | 384 KB | # of queries: 2868 |
6 | Correct | 42 ms | 384 KB | # of queries: 2919 |
7 | Correct | 38 ms | 256 KB | # of queries: 2908 |
8 | Correct | 42 ms | 384 KB | # of queries: 2742 |
9 | Correct | 37 ms | 256 KB | # of queries: 2880 |
10 | Correct | 21 ms | 256 KB | # of queries: 1628 |
11 | Correct | 1 ms | 256 KB | # of queries: 0 |
12 | Correct | 1 ms | 256 KB | # of queries: 1 |
13 | Correct | 0 ms | 256 KB | # of queries: 6 |
14 | Correct | 0 ms | 256 KB | # of queries: 7 |
15 | Correct | 2 ms | 256 KB | # of queries: 91 |
16 | Correct | 3 ms | 256 KB | # of queries: 231 |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 44 ms | 384 KB | # of queries: 2749 |
2 | Correct | 30 ms | 384 KB | # of queries: 2787 |
3 | Correct | 39 ms | 256 KB | # of queries: 3004 |
4 | Correct | 41 ms | 384 KB | # of queries: 2921 |
5 | Correct | 39 ms | 384 KB | # of queries: 2868 |
6 | Correct | 42 ms | 384 KB | # of queries: 2919 |
7 | Correct | 38 ms | 256 KB | # of queries: 2908 |
8 | Correct | 42 ms | 384 KB | # of queries: 2742 |
9 | Correct | 37 ms | 256 KB | # of queries: 2880 |
10 | Correct | 21 ms | 256 KB | # of queries: 1628 |
11 | Correct | 1 ms | 256 KB | # of queries: 0 |
12 | Correct | 1 ms | 256 KB | # of queries: 1 |
13 | Correct | 0 ms | 256 KB | # of queries: 6 |
14 | Correct | 0 ms | 256 KB | # of queries: 7 |
15 | Correct | 2 ms | 256 KB | # of queries: 91 |
16 | Correct | 3 ms | 256 KB | # of queries: 231 |
17 | Correct | 458 ms | 384 KB | # of queries: 19548 |
18 | Correct | 363 ms | 384 KB | # of queries: 18781 |
19 | Correct | 339 ms | 384 KB | # of queries: 18931 |
20 | Correct | 370 ms | 384 KB | # of queries: 17933 |
21 | Correct | 324 ms | 384 KB | # of queries: 16904 |
22 | Correct | 374 ms | 384 KB | # of queries: 19157 |
23 | Correct | 368 ms | 384 KB | # of queries: 18738 |
24 | Correct | 131 ms | 384 KB | # of queries: 8615 |
25 | Correct | 417 ms | 384 KB | # of queries: 18634 |
26 | Correct | 280 ms | 384 KB | # of queries: 17475 |
27 | Correct | 184 ms | 384 KB | # of queries: 8856 |
28 | Correct | 164 ms | 384 KB | # of queries: 10069 |
29 | Correct | 193 ms | 384 KB | # of queries: 10063 |
30 | Correct | 151 ms | 384 KB | # of queries: 10069 |