Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Interactive
- #include "sockslib.h"
- #include <bits/stdc++.h>
- using namespace std;
- const int inf = 1e9;
- const int N = 2e3 + 10;
- bool in[N];
- int k, n;
- bool Check(int s, int e, int cnt = 0){
- vector <int> socks;
- for(int i=s;i<=e;i++){
- if(in[i])
- socks.push_back(i), cnt ++;
- }
- return ask(socks) < cnt;
- }
- int main() {
- n = 2 * num();
- for(int i=1;i<=2*n;i++) in[i] = true;
- for(int i=1;i<=n;i++){
- int l = 1, r = i, mx = -inf;
- while(l <= r){
- int mid = (l + r) / 2;
- if(Check(mid, i))
- l = mid + 1, mx = max(mx, mid);
- else
- r = mid - 1;
- }
- if(mx != -inf){
- in[i] = in[mx] = false;
- match(i, mx);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement