Submission #1162074

#TimeUsernameProblemLanguageResultExecution timeMemory
1162074cnn008Aliens (IOI07_aliens)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,X0,Y0,_x,_y,cnt;
signed main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>X0>>Y0;
	auto ask = [&](int x, int y)->bool{
	    cnt++;
	    assert(cnt<=300);
		cout<<"examine "<<x<<" "<<y<<endl;
		string s;
		cin>>s;
		if(s[0]=='t') return 1;
		return 0;
	};
	int l1,r1,l2,r2;
	_x=X0,_y=Y0;
	for(int i=1; ; i*=2){
		int y=min(n,_y+i);
		if(!ask(X0,y)){
			int l=_y,r=y-1;
			while(l<=r){
				int mid=(l+r)>>1;
				if(ask(X0,mid)){
					r2=mid;
					l=mid+1;
				}else r=mid-1;
			}
			break;
		}else{
			if(y==n){
				r2=n;
				break;
			}
			_y+=i;
		}
	}
	_x=X0,_y=Y0;
	for(int i=1; ; i*=2){
		int x=min(n,_x+i);
		if(!ask(x,Y0)){
			int l=_x,r=x-1;
			while(l<=r){
				int mid=(l+r)>>1;
				if(ask(mid,Y0)){
					l2=mid;
					l=mid+1;
				}else r=mid-1;
			}
			break;
		}else{
			if(x==n){
				l2=n;
				break;
			}
			_x+=i;
		}
	}
	_x=X0,_y=Y0;
	for(int i=1; ; i*=2){
		int y=max(1,_y-i);
		if(!ask(X0,y)){
			int r=_y,l=y+1;
			while(l<=r){
				int mid=(l+r)>>1;
				if(ask(X0,mid)){
					r1=mid;
					r=mid-1;
				}else l=mid+1;
			}
			break;
		}else{
			if(y==1){
				r1=1;
				break;
			}
			_y-=i;
		}
	}
	_x=X0,_y=Y0;
	for(int i=1; ; i*=2){
		int x=max(1,_x-i);
		if(!ask(x,Y0)){
			int r=_x,l=x+1;
			while(l<=r){
				int mid=(l+r)>>1;
				if(ask(mid,Y0)){
					l1=mid;
					r=mid-1;
				}else l=mid+1;
			}
			break;
		}else{
			if(x==1){
				l1=1;
				break;
			}
			_x-=i;
		}
	}
	int m=r2-r1+1,cur=0;
	int l=1,r=300000;
	auto check = [&](int x, int y)->bool{
		if(x<0 || y<0) return 0;
		return ask(x,y);
	};
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(l1-mid*m,r1-mid*m)){
			cur=mid;
			l=mid+1;
		}else r=mid-1;
	}
	r1-=m*cur;
	l1-=m*cur;
	cur=0;
	l=1,r=300000;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(l1-mid*m,r1)){
			cur=mid;
			l=mid+1;
		}else r=mid-1;
	}
	l1-=cur*m;
	cur=0;
	l=1,r=300000;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(l1,r1-mid*m)){
			cur=mid;
			l=mid+1;
		}else r=mid-1;
	}
	r1-=cur*m;
	l1+=(m-1)*m;
	r1+=(m-1)*m;
	l1+=m/2;
	r1+=m/2;
	cout<<"solution "<<l1<<" "<<r1<<endl;
	return 0;
}

Compilation message (stderr)

aliens.cpp: In function 'int main()':
aliens.cpp:63:26: error: no matching function for call to 'max(int, long long int)'
   63 |                 int y=max(1,_y-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
aliens.cpp:63:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   63 |                 int y=max(1,_y-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
aliens.cpp:63:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   63 |                 int y=max(1,_y-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
aliens.cpp:63:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   63 |                 int y=max(1,_y-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
aliens.cpp:63:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   63 |                 int y=max(1,_y-i);
      |                       ~~~^~~~~~~~
aliens.cpp:84:26: error: no matching function for call to 'max(int, long long int)'
   84 |                 int x=max(1,_x-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
aliens.cpp:84:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   84 |                 int x=max(1,_x-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
aliens.cpp:84:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   84 |                 int x=max(1,_x-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
aliens.cpp:84:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   84 |                 int x=max(1,_x-i);
      |                       ~~~^~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from aliens.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
aliens.cpp:84:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   84 |                 int x=max(1,_x-i);
      |                       ~~~^~~~~~~~