제출 #1052076

#제출 시각아이디문제언어결과실행 시간메모리
1052076Huseyn123버섯 세기 (IOI20_mushrooms)C++17
56.50 / 100
6 ms852 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int count_mushrooms(int n) { vector<int> c; for(int i=1;i<n;i++){ c.push_back(i); } shuffle(c.begin(),c.end(),rng); vector<int> v0,v1; v0.push_back(0); int cnt=0; for(auto x:c){ int h=use_machine({x,0}); if(h==0){ v0.push_back(x); } else{ v1.push_back(x); } cnt++; int mx=max((int)v0.size(),(int)v1.size()); if(mx>1 && cnt+(n-cnt-1)/(mx-1)<400){ break; } } int res=(int)v0.size(); vector<int> v=v0; int tp=0; if((int)v1.size()>(int)v0.size()){ tp=1; v=v1; } vector<int> d; for(int i=cnt;i<n-1;i++){ d.push_back(v[(int)d.size()/2]); d.push_back(c[i]); if((int)d.size()==2*v.size()-2){ d.push_back(v.back()); int h=use_machine(d); int sz=(int)d.size(); d.clear(); if(tp){ res+=h/2; } else{ res+=sz/2-h/2; } } } if((int)d.size()>0){ d.push_back(v.back()); int h=use_machine(d); int sz=(int)d.size(); d.clear(); if(tp){ res+=h/2; } else{ res+=sz/2-h/2; } } return res; }

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:39:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   if((int)d.size()==2*v.size()-2){
      |      ~~~~~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...