Submission #1018898

#TimeUsernameProblemLanguageResultExecution timeMemory
1018898NintsiChkhaidzeCounting Mushrooms (IOI20_mushrooms)C++17
56.78 / 100
7 ms856 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 = 2*sqrt(n); 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; }

Compilation message (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...