제출 #704700

#제출 시각아이디문제언어결과실행 시간메모리
704700NemanjaSo2005Counting Mushrooms (IOI20_mushrooms)C++14
0 / 100
105 ms808 KiB
#include "mushrooms.h" #include<bits/stdc++.h> #define ll long long using namespace std; ll N,sta[20005]; bool inv; vector<int> x,v,b1,b2,nep; int count_mushrooms(int n){ N=n;/* if(N<=10000){ sta[0]=1; for(int i=0;i+1<N;i++){ x.clear(); x.push_back(i); x.push_back(i+1); sta[i+1]=sta[i]^use_machine(x); } ll res=0; for(int i=0;i<N;i++) res+=sta[i]; return res; }*/ sta[0]=1; for(int i=0;i+2<N;i+=2){ x.clear(); x.push_back(i); x.push_back(i+1); x.push_back(i+2); int ans=use_machine(x); if(ans==0){ sta[i+1]=sta[i]; sta[i+2]=sta[i]; } if(ans==2){ sta[i+1]=sta[i]^1; sta[i+2]=sta[i]; } if(ans==1){ sta[i+1]=2; sta[i+2]=sta[i]^1; } } if(N%2==0){ x.clear(); x.push_back(N-1); x.push_back(N-2); sta[N-1]=sta[N-2]^use_machine(x); } for(int i=0;i<N;i++){ if(sta[i]==0) b2.push_back(i); if(sta[i]==1) b1.push_back(i); if(sta[i]==2) nep.push_back(i); } if(b1.size()>b2.size()){ v=b1; inv=1; } else{ inv=0; v=b2; } x.clear(); x.push_back(v[v.size()-1]); v.pop_back(); for(int i=0;i<nep.size();i++){ x.push_back(nep[i]); x.push_back(v[v.size()-1]); v.pop_back(); } int res=0; if(x.size()>1){ res=use_machine(x)/2; if(inv) res=nep.size()-res; } for(int i=0;i<N;i++) if(sta[i]==1) res++; return res; }

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:68:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |    for(int i=0;i<nep.size();i++){
      |                ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...