Language: C++

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

typedef long long ll;
typedef pair <int, int> pii;

const ll MAX_N = 1e5 + 5;
ll n, p;
string s1, s2, s;
string type[MAX_N];

void t1 (int l, int r);

void t2 (int l, int r) {
	cout << (r + l) >> 1 - 1 << endl;
	cin >> s;

	type[(r + l) >> 1] = s;
	if (type[(r + l) >> 1] == "Vacant")
		return ;
	
	if (((r - l + 1) >> 1 + 1) & 1) {
		if (type[(r + l) >> 1] != type[l])
			t2(l, (r + l) >> 1);
		else
			t2((r + l) >> 1, r);
	}
	else {
		if (type[(r + l) >> 1] == type[l])
			t1(l, (r + l) >> 1);
		else
			t1((r + l) >> 1, r);
	}
}



int main() {
//	ios::sync_with_stdio(false), cin.tie(0);
	cin >> n;
	
	cout << 0 << endl;
	cin >> s1;

	cout << (n + 1) >> 1 - 1 << endl;
	cin >> s2;

	type[1] = s1;
	type[(n + 1) >> 1] = s2;

	if (s1 == "Vacant" || s2 == "Vacant")
		return 0;
	
	if (((n + 1) >> 1) & 1) {
		if (s1 != s2)
			t2(1, (n + 1) >> 1);
		else
			t1((n + 1) >> 1, n + 1);
	}
	else {
		if (s1 == s2)
			t1(1, (n + 1) >> 1);
		else
			t2((n + 1) >> 1, n + 1);
	}
	return 0;
}

void t1 (int l, int r) {
	cout << (l + r) >> 1 - 1 << endl;
	cin >> s;
	
	type[(l + r) >> 1] = s;
	if (type[(l + r) >> 1] == "Vacant")
		return ;
	
	if (((r - l + 1) >> 1) & 1) {
		if (type[(l + r) >> 1] != type[l])
			t2(l, (l + r) >> 1);
		else
			t1((l + r) >> 1, r);
	}
	else {
		if (type[(l + r) >> 1] == type[l])
			t1(l, (l + r) >> 1);
		else
			t2((l + r) >> 1, r);
	}
}


Compiler output:
a.cc: In function 'void t2(int, int)':
a.cc:17:25: error: no match for 'operator>>' (operand types are 'std::basic_ostream<char>' and 'int')
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |         ~~~~~~~~~~~~~~~ ^~ ~~~~~
      |              |               |
      |              |               int
      |              std::basic_ostream<char>
a.cc:17:25: note: candidate: 'operator>>(int, int)' (built-in)
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |         ~~~~~~~~~~~~~~~~^~~~~~~~
a.cc:17:25: note:   no known conversion for argument 1 from 'std::basic_ostream<char>' to 'int'
In file included from /usr/include/c++/14/string:55,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/basic_string.tcc:835:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  835 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.tcc:835:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
In file included from /usr/include/c++/14/bits/memory_resource.h:38,
                 from /usr/include/c++/14/string:68:
/usr/include/c++/14/cstddef:131:5: note: candidate: 'template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator>>(byte, _IntegerType)'
  131 |     operator>>(byte __b, _IntegerType __shift) noexcept
      |     ^~~~~~~~
/usr/include/c++/14/cstddef:131:5: note:   template argument deduction/substitution failed:
a.cc:17:14: note:   cannot convert 'std::cout.std::basic_ostream<char>::operator<<((r + l))' (type 'std::basic_ostream<char>') to type 'std::byte'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |         ~~~~~^~~~~~~~~~
In file included from /usr/include/c++/14/istream:1109,
                 from /usr/include/c++/14/iostream:42:
/usr/include/c++/14/bits/istream.tcc:978:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT&)'
  978 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/14/bits/istream.tcc:978:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:849:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char&)'
  849 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:849:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:854:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char&)'
  854 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:854:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:896:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT*)'
  896 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:896:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<_CharT, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:939:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char*)'
  939 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:939:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:945:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char*)'
  945 |     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/14/istream:945:5: note:   template argument deduction/substitution failed:
a.cc:17:32: note:   'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:1099:5: note: candidate: 'template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&)'
 1099 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
/usr/include/c++/14/istream:1099:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/istream: In substitution of 'template<class _Istream, class _Tp> _Istream&& std::operator>>(_Istream&&, _Tp&&) [with _Istream = std::basic_ostream<char>&; _Tp = int]':
a.cc:17:25:   required from here
   17 |         cout << (r + l) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:1099:5: error: no type named 'type' in 'struct std::enable_if<false, void>'
 1099 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
a.cc: In function 'int main()':
a.cc:47:25: error: no match for 'operator>>' (operand types are 'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} and 'int')
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |         ~~~~~~~~~~~~~~~ ^~ ~~~~~
      |              |               |
      |              |               int
      |              std::basic_ostream<char>::__ostream_type {aka std::basic_ostream<char>}
a.cc:47:25: note: candidate: 'operator>>(int, int)' (built-in)
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |         ~~~~~~~~~~~~~~~~^~~~~~~~
a.cc:47:25: note:   no known conversion for argument 1 from 'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} to 'int'
/usr/include/c++/14/bits/basic_string.tcc:835:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  835 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/14/bits/basic_string.tcc:835:5: note:   template argument deduction/substitution failed:
a.cc:47:32: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<_CharT, _Traits>'
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/cstddef:131:5: note: candidate: 'template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator>>(byte, _IntegerType)'
  131 |     operator>>(byte __b, _IntegerType __shift) noexcept
      |     ^~~~~~~~
/usr/include/c++/14/cstddef:131:5: note:   template argument deduction/substitution failed:
a.cc:47:14: note:   cannot convert 'std::cout.std::basic_ostream<char>::operator<<((n + 1))' (type 'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'}) to type 'std::byte'
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |         ~~~~~^~~~~~~~~~
/usr/include/c++/14/bits/istream.tcc:978:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _CharT&)'
  978 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/14/bits/istream.tcc:978:5: note:   template argument deduction/substitution failed:
a.cc:47:32: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<_CharT, _Traits>'
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:849:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, unsigned char&)'
  849 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:849:5: note:   template argument deduction/substitution failed:
a.cc:47:32: note:   'std::basic_ostream<char>::__ostream_type' {aka 'std::basic_ostream<char>'} is not derived from 'std::basic_istream<char, _Traits>'
   47 |         cout << (n + 1) >> 1 - 1 << endl;
      |                                ^
/usr/include/c++/14/istream:854:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(basic_istream<char, _Traits>&, signed char&)'
  854 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/14/istream:854:5: note:   template argume