#include <bits/stdc++.h>
// #include <iostream>
// #include <cmath>
// #include <algorithm>
// #include <map>
// #include <vector>
// #include <iomanip>
// #include <string>
// #include <queue>
// #include <set>
// #include <deque>
using namespace std;
// #define int long long
// const int N=3e5+5;
// const int M=998244353;
// const int LOG = 18;
int n , m , c , t=1 , q=1 , x , y;
void solve()
{
cin >> n;
string s="";
for (int i=0;i<n;i++){
s+='0';
}
vector<string>an(n,s);
vector<string>a(n,s);
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
a[i][j]='1';
}
cout << "?" << endl;
for (string p:a){
cout << p << endl;
}
cin >> x;
if (x==n*n){
cout << "!" << endl;
for (string p:a){
cout << p << endl;
}
return;
}
int r=0;
if (x==n*n-n+1){
a[i][n-1]='0';
cout << "?" << endl;
for (string p:a){
cout << p << endl;
}
cin >> y;
if (x-y==1){
an[i][n-1]='H';
r=1;
}
a[i][n-1]='1';
}
int o=x;
for (int j=0;j<n;j++){
a[i][j]='0';
if (an[i][j]=='H')continue;
cout << "?" << endl;
for (string p:a){
cout << p << endl;
}
cin >> y;
// cout << (x-y==j+1) << " ";
if (o==n*n-n+1){
if (x-y==j+1 and r==0){
r=1;
an[i][j]='H';
a[i][j]='1';
}
else{
an[i][j]='V';
x=y;
}
}
else if (x-y<2){
an[i][j]='H';
a[i][j]='1';
}
else{
an[i][j]='V';
x=y;
}
}
for (int j=0;j<n;j++){
a[i][j]='0';
}
}
// for (int i=0;i<n;i++){
// cout << an[i] << endl;
// }
bool f=1;
vector<int>in(n,-1);
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
if (an[i][j]=='H'){
in[i]=j;
}
}
if (in[i]==-1)f=0;
}
if (f){
for(int i=0;i<n;i++){
a[i][in[i]]='1';
}
cout << "!" << endl;
for (string p:a){
cout << p << endl;
}
return;
}
vector<int>ind(n,-1);
for (int j=0;j<n;j++){
for (int i=0;i<n;i++){
if (an[i][j]=='V'){
ind[j]=i;
}
}
if (ind[j]==-1){
cout << -1 << endl;
return;
}
}
for(int i=0;i<n;i++){
a[ind[i]][i]='1';
}
cout << "!" << endl;
for (string p:a){
cout << p << endl;
}
}
signed main()
{
// int t=1;
// cin >> t;
for (int _=1;_<=t;_++){
solve();
q++;
}
}
// HVH
// VHV
// HHV
// VVVVVH
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |