Submission #728501

#TimeUsernameProblemLanguageResultExecution timeMemory
728501groguRarest Insects (IOI22_insects)C++17
Compilation error
0 ms0 KiB
#include "insects.h"
#define dbg(x) cerr<<#x<<": "<<x<<endl
#include <bits/stdc++.h>
#define ll int
#define pll pair<ll,ll>

using namespace std;
#define maxn 2005
ll n;
set<ll> s;
ll uniq = 0;
ll F[maxn];
ll cur = 0;
void add(ll i){
    if(s.find(i)!=s.end()) return;
    move_inside(i);
    s.insert(i);
}
void del(ll i){
    if(s.find(i)==s.end()){
        cerr<<"out"<<endl;
        return;
    }
    move_outside(i);
    s.erase(i);
}
ll get(){return press_button();}
void klir(){
    while(s.size()) del(s.begin());
}
ll f(ll x){
    if(F[x]!=-1) return F[x];
    if(cur>x) klir(),cur = 0;
    for(ll i = 0;i<n;i++){
        add(i);
        cur = get();
        if(cur>x) del(i);
    }
    return F[x] = s.size();
}
ll min_cardinality(ll N) {
    for(ll i = 0;i<maxn;i++) F[i] = -1;
    n = N;
    uniq = f(1);
    //dbg(uniq);
    ll l = 1, r = n,mid,rez = n;
    while(l<=r){
        mid = (l+r)/2;
        if(f(mid)==uniq*mid) l = mid+1,rez = mid;
        else r = mid-1;
    }
    return rez;
}
/**
6
5 8 9 5 9 9
**/

Compilation message (stderr)

insects.cpp: In function 'void klir()':
insects.cpp:29:32: error: cannot convert 'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} to 'int'
   29 |     while(s.size()) del(s.begin());
      |                         ~~~~~~~^~
      |                                |
      |                                std::set<int>::iterator {aka std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator}
insects.cpp:19:13: note:   initializing argument 1 of 'void del(int)'
   19 | void del(ll i){
      |             ^