This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
bool odp_=false;
int main()
{
    int n;
    cin >> n;
    
    for (int i=0; i<((long long)1<<(n*n)); i++){
        //cout << i << endl;
        int l=0;
        int liczba=0;
        vector<vector<int>> grid(n,vector<int>(n));
        for (int y=0; y<n; y++){
            for (int x=0; x<n; x++){
                //cout << i << " " << (1<<l) << " " << (i & (1<<l)) << endl;
                if (i & ((long long)1<<l)){
                    grid[y][x] = 1;
                    liczba++;
                }
                l++;
            }
        }
        if (true){
            cout << "?"<<endl;
            for (int y=0; y<n; y++){
                for (int x=0; x<n; x++){
                    cout << grid[y][x] << "";
                }
                cout << endl;
            }
            int odp;
            cin >> odp;
            if (odp==(n*n)){
                cout << "!"<<endl;
                for (int y=0; y<n; y++){
                    for (int x=0; x<n; x++){
                        cout << grid[y][x] << "";
                    }
                    cout << endl;
                }
                odp_=true;
                break;
            }
        }
        
        
        
    }
    if (!odp_){
        for (int y=0; y<n; y++){cout<<"!"<<endl;
            for (int x=0; x<n; x++){
                cout << 1 << "";
            }
            cout << endl;
        }
    }
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |