# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
761402 | Khizri | Counting Mushrooms (IOI20_mushrooms) | C++17 | 0 ms | 208 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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=140;
vector<int>x,y;
x.pb(0);
int idx=0;
for(int i=1;i<3;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 t=1;
int a,b;
if(x.size()==2){
a=x[0],b=x[1];
}
else{
t=0;
a=y[0],b=y[1];
}
for(int i=3;i<n;i+=2){
if(x.size()>=k||y.size()>=k) break;
idx=i+1;
vector<int>vt={i,a,i+1,b};
int cnt=use_machine(vt);
if(t){
if(cnt==0){
x.pb(i);
x.pb(i+1);
}
else if(cnt==1){
y.pb(i);
x.pb(i+1);
}
else if(cnt==2){
x.pb(i);
y.pb(i+1);
}
else{
y.pb(i);
y.pb(i+1);
}
}
else{
if(cnt==0){
y.pb(i);
y.pb(i+1);
}
else if(cnt==1){
x.pb(i);
y.pb(i+1);
}
else if(cnt==2){
y.pb(i);
x.pb(i+1);
}
else{
x.pb(i);
x.pb(i+1);
}
}
}
int ok=0;
int ans=x.size();
if(x.size()<y.size()){
x=y;
ok=1;
}
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]);
}
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;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |