Submission #761382

#TimeUsernameProblemLanguageResultExecution timeMemory
761382KhizriCounting Mushrooms (IOI20_mushrooms)C++17
44.75 / 100
9 ms316 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define F first #define S second #define INF 1e18 #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define pii pair<int,int> #define pll pair<ll,ll> #define OK cout<<"Ok"<<endl; #define MOD (ll)(1e9+7) const int mxn=2e4+5; int color[mxn]; int count_mushrooms(int n) { if(n<=490){ int ans=1; for(int i=1;i<n-1;i+=2){ vector<int>vt={i,0,i+1}; int k=use_machine(vt); ans+=(2-k); } if((n-1)%2){ vector<int>vt={n-1,0}; int k=use_machine(vt); ans+=(1-k); } return ans; } int k=50; vector<int>x,y; x.pb(0); int idx=0; for(int i=1;i<n;i++){ if(x.size()>=k||y.size()>=k) break; idx=i; vector<int>vt={0,i}; if(use_machine(vt)==0){ x.pb(i); color[i]=1; } else{ y.pb(i); color[i]=2; } } int ok=0; if(x.size()<y.size()){ x=y; ok=1; } color[0]=1; int ans=0; for(int i=0;i<=idx;i++){ if(color[i]==1){ ans++; } } vector<int>qr; for(int i=idx+1;i<n;i++){ qr.pb(i); if(qr.size()==k-1||i==n-1){ vector<int>vt; vt.pb(x[0]); for(int j=0;j<qr.size();j++){ vt.pb(qr[j]); vt.pb(x[j+1]); } /* for(int v:vt){ cout<<v<<' '; } */ //cout<<endl; int cnt=use_machine(vt); if(!ok){ int say=cnt/2; ans+=qr.size()-say; } else{ int say=cnt/2; ans+=say; } qr.clear(); } } return ans; }

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:37:20: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   37 |         if(x.size()>=k||y.size()>=k) break;
      |            ~~~~~~~~^~~
mushrooms.cpp:37:33: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   37 |         if(x.size()>=k||y.size()>=k) break;
      |                         ~~~~~~~~^~~
mushrooms.cpp:64:21: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   64 |         if(qr.size()==k-1||i==n-1){
      |            ~~~~~~~~~^~~~~
mushrooms.cpp:67:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |             for(int j=0;j<qr.size();j++){
      |                         ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...