제출 #424249

#제출 시각아이디문제언어결과실행 시간메모리
424249chirathnirodha버섯 세기 (IOI20_mushrooms)C++17
56.50 / 100
13 ms328 KiB
//Coded by Chirath Nirodha #include "mushrooms.h" #include<bits/stdc++.h> #define F first #define S second #define PB push_back #define MP make_pair #define P push #define I insert typedef long long ll; typedef long double ld; typedef unsigned long long ull; using namespace std; const ll mod=1e9+7; int findbest(int n){ pair<int,int> x; x.F=100000; for(int i=20;i<=226;i++){ int temp=i+(2*(n-i-1)+i)/(i+1); if(temp<x.F){ x.F=temp; x.S=i; } } return x.S; } int count_mushrooms(int n) { vector<int> a,b; a.push_back(0); int cur=1; int bb=findbest(n); if(n<=226)bb=n; while(cur<n && cur<bb){ vector<int> m; m.PB(0);m.PB(cur); int x=use_machine(m); if(x==0)a.PB(cur); else b.PB(cur); cur++; } int ac=a.size(),bc=b.size(); if(a.size()>=b.size()){ while(cur<n){ vector<int> m; for(int i=0;i<a.size();i++){ m.PB(a[i]); if(cur==n || i==a.size()-1)break; m.PB(cur); cur++; } int x=use_machine(m); bc+=x/2; } return n-bc; } else{ while(cur<n){ vector<int> m; for(int i=0;i<b.size();i++){ m.PB(b[i]); if(cur==n || i==b.size()-1)break; m.PB(cur); cur++; } int x=use_machine(m); ac+=x/2; } return ac; } }

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:45:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |    for(int i=0;i<a.size();i++){
      |                ~^~~~~~~~~
mushrooms.cpp:47:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     if(cur==n || i==a.size()-1)break;
      |                  ~^~~~~~~~~~~~
mushrooms.cpp:59:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |    for(int i=0;i<b.size();i++){
      |                ~^~~~~~~~~
mushrooms.cpp:61:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |     if(cur==n || i==b.size()-1)break;
      |                  ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...