제출 #631747

#제출 시각아이디문제언어결과실행 시간메모리
631747AmirElarbi드문 곤충 (IOI22_insects)C++17
47.50 / 100
208 ms440 KiB
#include "insects.h"
#include <bits/stdc++.h>
#define ve vector
#define vi ve<int>
#define ii pair<int,int>
#define ll long long
#define vvi ve<vi>
#define se second
#define fi first
#define pb push_back

using namespace std;
const int nax = 2e3+5;
const int MOD = 1e9+7;


int pref[nax];
int min_cardinality(int n) {
  int type  = 0;
  for (int i = 0; i < n; ++i)
  {
       move_inside(i);
       int a = press_button();
       if(a == 1)
        type++;
       else 
        move_outside(i);
      pref[i] = type;
  }
  for (int i = 0; i < n; ++i)
  {
    move_outside(i);
  }
  int l = 1,r = n/type+1, ans = 0;
  vi cur, vis(n);
  while(l< r){
    int md = (l+r)/2;
    for (int i = 0; i < n; ++i)
    {
        if(vis[i]) continue;
        move_inside(i);
        int a = press_button();
        if(a  > md){
            move_outside(i);
        } else {
            cur.pb(i);
        }
    }
    if(type*md == cur.size()){
        for(auto x : cur) vis[x] = 1;
        l = md+1; ans = md; 
    } else {
        r = md;
        for (auto i : cur)
        {
          move_outside(i);
          vis[i] = 0;
        }
        cur.clear();
    }
  }
  return ans;
}

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

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:49:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |     if(type*md == cur.size()){
      |        ~~~~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...