Submission #1186801

#TimeUsernameProblemLanguageResultExecution timeMemory
1186801owoovoCounting Mushrooms (IOI20_mushrooms)C++20
Compilation error
0 ms0 KiB
#include "mushrooms.h"
#include<bits/stdc++.h>
#define F first 
#define S second
using namespace std;
int p[20010];
int query(vector<int> vc){
	vector<int> ask=vc;
	for(auto &x:ask){
		x=p[x];
	}
	return use_machine(vc);
}
int count_mushrooms(int n) {
	for(int i=0;i<n;i++)p[i]=i;
	random_shuffle(&p[1],&p[n]);
	vector<int> a={0},b;
	if(n<=226){
		int ans=1;
		for(int i=1;i<n;i++){
			if(query({0,i})==0)ans++;
		}
		return ans;
	}
	int cnt=1;
	// if(query({0,cnt})==0){
	// 	a.push_back(cnt);
	// }else{
	// 	b.push_back(cnt);
	// }
	// cnt++;
	// if(query({0,cnt})==0){
	// 	a.push_back(cnt);
	// }else{
	// 	b.push_back(cnt);
	// }
	// cnt++;
	// int T=70;
	// if(a.size()>b.size()){
	// 	for(int i=0;i<T;i++){
	// 		int u=query({cnt,a[0],cnt+1,a[1]});
	// 		if(u&1){
	// 			b.push_back(cnt);
	// 		}else{
	// 			a.push_back(cnt);
	// 		}
	// 		if(u&2){
	// 			b.push_back(cnt+1);
	// 		}else{
	// 			a.push_back(cnt+1);
	// 		}
	// 		cnt+=2;
	// 	}
	// }else{
	// 	for(int i=0;i<T;i++){
	// 		int u=query({cnt,b[0],cnt+1,b[1]});
	// 		if(u&1){
	// 			a.push_back(cnt);
	// 		}else{
	// 			b.push_back(cnt);
	// 		}
	// 		if(u&2){
	// 			a.push_back(cnt+1);
	// 		}else{
	// 			b.push_back(cnt+1);
	// 		}
	// 		cnt+=2;
	// 	}
	// }
	int mx=200;
	int ans=a.size();
	while(cnt<n){
		vector<int> q;
		int xd=0,st=cnt;
		if(a.size()>=b.size()){
			if(a.size()<mx){
				for(int i=0;i<min(a.size(),3);i++){
					if(cnt<n){
						xd++;
						q.push_back(cnt);
						cnt++;
					}
					q.push_back(a[i]);
				}
			}else{
				for(int i=0;i<a.size();i++){
					if(cnt<n){
						xd++;
						q.push_back(cnt);
						cnt++;
					}
					q.push_back(a[i]);
				}

			}
			int ct=query(q);
			if(ct%2==0){
				a.push_back(st);
			}else{
				b.push_back(st);
			}
			int bs=(ct+1)/2;
			if(ct/2==xd){
				for(int i=st+1;i<st+xd;i++){
					b.push_back(i);
				}
			}
			if(ct/2==0){
				for(int i=st+1;i<st+xd;i++){
					a.push_back(i);
				}
			}
			ans+=xd-bs;
		}else{
			if(b.size()<mx){
				for(int i=0;i<min(b.size(),3);i++){
					if(cnt<n){
						xd++;
						q.push_back(cnt);
						cnt++;
					}
					q.push_back(b[i]);
				}
			}else{
				for(int i=0;i<b.size();i++){
					if(cnt<n){
						xd++;
						q.push_back(cnt);
						cnt++;
					}
					q.push_back(b[i]);
				}
			}
			int ct=query(q);
			if(ct%2==0){
				b.push_back(st);
			}else{
				a.push_back(st);
			}
			int as=(ct+1)/2;
			if(ct/2==xd){
				for(int i=st+1;i<st+xd;i++){
					a.push_back(i);
				}
			}
			if(ct/2==0){
				for(int i=st+1;i<st+xd;i++){
					b.push_back(i);
				}
			}
			ans+=as;
		}
	}
	return ans;
}

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:77:50: error: no matching function for call to 'min(std::vector<int>::size_type, int)'
   77 |                                 for(int i=0;i<min(a.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:77:50: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   77 |                                 for(int i=0;i<min(a.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:77:50: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   77 |                                 for(int i=0;i<min(a.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:77:50: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   77 |                                 for(int i=0;i<min(a.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:77:50: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   77 |                                 for(int i=0;i<min(a.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
mushrooms.cpp:116:50: error: no matching function for call to 'min(std::vector<int>::size_type, int)'
  116 |                                 for(int i=0;i<min(b.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:116:50: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
  116 |                                 for(int i=0;i<min(b.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:116:50: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
  116 |                                 for(int i=0;i<min(b.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:116:50: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
  116 |                                 for(int i=0;i<min(b.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:116:50: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
  116 |                                 for(int i=0;i<min(b.size(),3);i++){
      |                                               ~~~^~~~~~~~~~~~