Submission #837770

#TimeUsernameProblemLanguageResultExecution timeMemory
837770kshitij_sodaniRarest Insects (IOI22_insects)C++17
99.95 / 100
47 ms548 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define a first #define b second #define pb push_back typedef long long llo; #define endl '\n' #include "insects.h" #define in move_inside #define out move_outside #define query press_button int d; int query(int l,int r,vector<int> aa,vector<int> bb){ //cout<<l<<":"<<r<<endl; if(l==r){ return l; } int mid=(l+r+1)/2; if(r-l+1>=3){ mid=(l+r)/2; } vector<int> cc; vector<int> dd; int le=bb.size(); int ind2=-1; for(auto j:bb){ if(aa.size()+cc.size()==mid*d){ dd.pb(j); continue; } ind2++; if(aa.size()+cc.size()+le<mid*d){ for(auto jj:cc){ out(jj); } for(int jj=ind2;jj<bb.size();jj++){ cc.pb(bb[jj]); } return query(l,mid-1,aa,cc); } le--; in(j); cc.pb(j); if(query()>mid){ out(j); cc.pop_back(); dd.pb(j); } } if(aa.size()+cc.size()!=mid*d){ for(auto j:cc){ out(j); } int mi=mid-1; int x=aa.size()+cc.size(); if((x/d)<mi){ mi=(x/d); } return query(l,mi,aa,cc); } for(auto j:cc){ aa.pb(j); } return query(mid,r,aa,dd); } int min_cardinality(int n) { vector<int> ss; vector<int> tt; for(int i=0;i<n;i++){ in(i); ss.pb(i); if(query()==2){ out(i); tt.pb(i); ss.pop_back(); } } d=ss.size(); if(ss.size()==n){ return 1; } if(ss.size()==1){ return n; } int x=query(1,n/(ss.size()),ss,tt); return x; }

Compilation message (stderr)

insects.cpp: In function 'int press_button(int, int, std::vector<int>, std::vector<int>)':
insects.cpp:33:31: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   33 |         if(aa.size()+cc.size()==mid*d){
      |            ~~~~~~~~~~~~~~~~~~~^~~~~~~
insects.cpp:38:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |         if(aa.size()+cc.size()+le<mid*d){
      |            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
insects.cpp:42:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |             for(int jj=ind2;jj<bb.size();jj++){
      |                             ~~^~~~~~~~~~
insects.cpp:57:27: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   57 |     if(aa.size()+cc.size()!=mid*d){
      |        ~~~~~~~~~~~~~~~~~~~^~~~~~~
insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:86:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   86 |     if(ss.size()==n){
      |        ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...