제출 #904030

#제출 시각아이디문제언어결과실행 시간메모리
904030beaconmc드문 곤충 (IOI22_insects)C++17
99.89 / 100
39 ms1200 KiB
    #include "insects.h"
    #include <bits/stdc++.h>
     
    typedef long long ll;
    using namespace std;
     
     
    #define FOR(i, x, y) for(ll i=x; i<y; i++)
    #define FORNEG(i, x, y) for(ll i=x; i>y; i--)
     
    #define fast() ios_base::sync_with_stdio(false);cin.tie(NULL)
     
     
     
    int min_cardinality(int N) {
      vector<ll> ins;
      vector<ll> outs;
      FOR(i,0,N){
        move_inside(i);
        ll sus = press_button();
        if (sus>1){
          move_outside(i);
          outs.push_back(i);
        }else{
          ins.push_back(i);
        }
      }
      ll numsize = ins.size();
     
      ll lo = 1;
      ll hi = N/ins.size();
      while (lo<hi){
        int mid = lo + (hi - lo + 1) / 2;
        vector<ll> nowin;
        vector<ll> nowout;
     
        while (outs.size()){
          ll sus = outs[outs.size()-1];
          outs.pop_back();
          move_inside(sus);
          ll count = press_button();
     
          if (count>mid){
            move_outside(sus);
            nowout.push_back(sus);
          }else{
            nowin.push_back(sus);
          }
        }
     
        if (ins.size() + nowin.size() == mid*numsize){
          for (auto&i : nowin){
            ins.push_back(i);
          }
          outs = nowout;
          lo = mid;
     
        }else{
          for (auto&i : nowin){
            move_outside(i);
            outs.push_back(i);
          }
     
          hi = mid-1;
        }
     
      }
      return lo;
    }

컴파일 시 표준 에러 (stderr) 메시지

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:51:39: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   51 |         if (ins.size() + nowin.size() == mid*numsize){
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...