Submission #306678

#TimeUsernameProblemLanguageResultExecution timeMemory
306678ivan24Counting Mushrooms (IOI20_mushrooms)C++14
10 / 100
196 ms1016 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; using ll = int; typedef vector<ll> vi; typedef vector<vi> vvi; typedef pair<ll,ll> ii; typedef vector<ii> vii; typedef vector<vii> vvii; #define F first #define S second class Solver{ private: ll n; vi isChecked, type, ctr; vvi byType; void add_type(ll x, bool t){ type[x] = t; byType[t].push_back(x); ctr[t]++; } void addOne(ll x){ ll res = use_machine(vi{0,x}); add_type(x,res); } bool addTwo(ll x, ll y){ bool t = 0; if (byType[t].size() < 2){ t = 1; } ll res = use_machine(vi{x,byType[t][0],y,byType[t][1]}); add_type(x,(res&1) ? !t : t); add_type(y,(res&2) ? !t : t); } public: Solver(ll n): n(n), isChecked(n,0), type(n,-1), ctr(2,0), byType(2){ type[0] = 0; ctr[0]++; byType[0].push_back(0); } int solve(){ for (ll i = 1; n > i; i++) addOne(i); return ctr[0]; } }; int count_mushrooms(int n) { Solver mySolver(n); return mySolver.solve(); }

Compilation message (stderr)

mushrooms.cpp: In member function 'bool Solver::addTwo(ll, ll)':
mushrooms.cpp:39:5: warning: no return statement in function returning non-void [-Wreturn-type]
   39 |     }
      |     ^
#Verdict Execution timeMemoryGrader output
Fetching results...