제출 #1018900

#제출 시각아이디문제언어결과실행 시간메모리
1018900NintsiChkhaidzeCounting Mushrooms (IOI20_mushrooms)C++17
78.20 / 100
6 ms972 KiB
#include "mushrooms.h" #include <bits/stdc++.h> #define pb push_back using namespace std; vector <int> v[3]; int count_mushrooms(int n) { v[0].pb(0); int bl = 70; for (int i = 1; i <= min(bl,n - 1); i++){ vector <int> k; k.pb(0); k.pb(i); int res = use_machine(k); if (!res) v[0].pb(i); else v[1].pb(i); } int ans = (int)v[0].size(); int id = bl + 1; while (id < n){ int m = max(v[0].size(),v[1].size()),d; vector <int> vec; if (m == v[0].size()){ vec = v[0]; d = 0; }else{ vec = v[1]; d = 1; } vector <int> k; int len = 0; for (int i = id; i <= min(n - 1,id + m - 1); i++){ ++len; k.pb(i); k.pb(vec[i - id]); } int s = use_machine(k); int ls = s % 2; s -= ls; int sum = s/2 + ls; if (d) ans += sum; else ans += (len - sum); if (!ls) v[d].pb(id); else v[!d].pb(id); id += m; } return ans; }

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

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