# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
303775 | denkendoemeer | 버섯 세기 (IOI20_mushrooms) | C++14 | 12 ms | 404 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "mushrooms.h"
using namespace std;
int count_mushrooms(int n)
{
vector<int>nr[2];
vector<int>aux;
nr[0].push_back(0);
int i,lim=130,ok,cnt=0,rez,ok2,ram,j;
for(i=1;i<n && max(nr[0].size(),nr[1].size())<2;i++)
nr[use_machine({0,i})].push_back(i);
if (nr[1].size()==2)
ok=1;
else
ok=0;
for(;i<n && max(nr[0].size(),nr[1].size())<lim;i=i+2)
{
if (i+1<n)
rez=use_machine({nr[ok][0],i,nr[ok][1],i+1});
else
rez=use_machine({nr[ok][0],i,nr[ok][1]});
if (rez&2)
ok2=1;
else
ok2=0;
nr[ok^ok2].push_back(i);
if (i+1<n)
ok2=rez&1,nr[ok^ok2].push_back(i+1);
}
while(i<n)
{
if (nr[1].size()==max(nr[0].size(),nr[1].size()))
ok=1;
else
ok=0;
ram=min((int)max(nr[0].size(),nr[1].size()),n-i);
aux.clear();
for(j=0;j<ram;j++)
aux.push_back(nr[ok][j]),aux.push_back(i+j);
rez=use_machine(aux);
if (rez%2==1)
rez++;
if (ok)
cnt=cnt+rez/2;
else
cnt=cnt+ram-rez/2;
i+=ram;
}
return nr[0].size()+cnt;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |