Language: C++

#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
 
using namespace std;
 
typedef long long ll;
 
#define sz size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(c) (c).begin(), (c).end()
#define rep(i,a,b) for(ll i=(a);i<(b);++i)
#define per(i,a,b) for(ll i=(b-1);i>=(a);--i)
#define clr(a, b) memset((a), (b) ,sizeof(a))
#define ctos(c) string(1,c)
#define print(x) cout<<#x<<" = "<<x<<endl;
 
#define MOD 1000000007
 
ll d[210][210];
 
int main(){
	ll n;
	cin>>n;
	clr(d,-1);
	rep(i,0,40){
		string s;
		rep(j,0,200){
			s += "0";
		}
		rep(j,i*5,i*5+5){
			s[j] = 'a';
		}
		cout << "?" << " " << s << endl;
		ll ans1;
		cin>>ans1;
		if(ans1==0){
			rep(j,i*5,i*5+5){
				rep(k,i*5+1,i*5+5){
					d[j][k] = 0;
				}
			}
		}
	}
	rep(i,0,n){
		rep(j,i+1,n){
			if(d[i][j]!=-1)continue;
				string s1;
				rep(l,0,n){
					if(l==i||l==j)s1+="1";
					else s1+="0";
				}
				cout << "?" << " " << s1 << endl;
				ll ans1;
				cin>>ans1;
				if(ans1==1){
					d[i][j] = 1;
				}
				else{
					d[i][j] = 0;
				}
			}
		}
	}
	cout << "! ";
	vector<pair<ll,ll> > v;
	rep(i,0,200){
		rep(j,i+1,200){
			if(d[i][j] == 1){
				v.pb(mp(i,j));
			}
		}
	}
	rep(i,0,v.sz){
		cout << "(" << v[i].fi << "," << v[i].se << ")";
		if(i!=v.sz-1)cout << " ";
	}
	cout << endl;
	return 0;
}

Compiler output:
a.cc:84:9: error: 'cout' does not name a type
   84 |         cout << "! ";
      |         ^~~~
a.cc:31:20: error: expected unqualified-id before 'for'
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                    ^~~
a.cc:86:9: note: in expansion of macro 'rep'
   86 |         rep(i,0,200){
      |         ^~~
a.cc:86:13: error: 'i' does not name a type; did you mean 'fi'?
   86 |         rep(i,0,200){
      |             ^
a.cc:31:33: note: in definition of macro 'rep'
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                                 ^
a.cc:31:39: error: expected unqualified-id before '++' token
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                                       ^~
a.cc:86:9: note: in expansion of macro 'rep'
   86 |         rep(i,0,200){
      |         ^~~
a.cc:31:20: error: expected unqualified-id before 'for'
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                    ^~~
a.cc:93:9: note: in expansion of macro 'rep'
   93 |         rep(i,0,v.sz){
      |         ^~~
a.cc:93:13: error: 'i' does not name a type; did you mean 'fi'?
   93 |         rep(i,0,v.sz){
      |             ^
a.cc:31:33: note: in definition of macro 'rep'
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                                 ^
a.cc:31:39: error: expected unqualified-id before '++' token
   31 | #define rep(i,a,b) for(ll i=(a);i<(b);++i)
      |                                       ^~
a.cc:93:9: note: in expansion of macro 'rep'
   93 |         rep(i,0,v.sz){
      |         ^~~
a.cc:97:9: error: 'cout' does not name a type
   97 |         cout << endl;
      |         ^~~~
a.cc:98:9: error: expected unqualified-id before 'return'
   98 |         return 0;
      |         ^~~~~~
a.cc:99:1: error: expected declaration before '}' token
   99 | }
      | ^