제출 #1181084

#제출 시각아이디문제언어결과실행 시간메모리
1181084guagua0407버섯 세기 (IOI20_mushrooms)C++20
45.47 / 100
3 ms432 KiB
#include "mushrooms.h"
//#include "stub.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

namespace{
    int B=200;
}

int count_mushrooms(int n) {
    B=min(B,n);
	vector<int> zero,one;
	zero.push_back(0);
	int i;
    for(i=1;i<n and (int)zero.size()<B and (int)one.size()<B;i++){
        vector<int> vec={0,i};
        int res=use_machine(vec);
        if(res==0) zero.push_back(i);
        else one.push_back(i);
    }
    int ans=(int)zero.size();
    for(;i<n;i+=B){
        int r=min(n,i+B);
        vector<int> vec;
        int cnt=0;
        for(int j=i;j<r;j++){
            if((int)zero.size()==B) vec.push_back(zero[cnt]);
            else vec.push_back(one[cnt]);
            cnt++;
            vec.push_back(j);
        }
        int res=use_machine(vec);
        if((int)zero.size()==B) ans+=(cnt-(res+1)/2);
        else ans+=(res+1)/2;
    }
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...