#include <bits/stdc++.h>
using namespace std;
int q;
int n,m;
int const MAX=5005;
bool edge[MAX][MAX];
void solve(){
    int limit;
    if(n&1)
        limit=(n-1)*(n-1)/4;
    else
        limit=n*(n-2)/4;
    if(m>limit){
        cout<<"No\n";
        return;
    }
    int i,j;
    for(i=2;i<=n;++i)
        for(j=1;j<i;++j)
            edge[i][j]=1;
    for(i=1;m;++i)
        if(m>=n-2*i){
            m-=n-2*i;
            edge[n-i+1][i]=0;
        }
        else{
            edge[i+m+1][i]=0;
            m=0;
        }
    cout<<"Yes\n";
    for(i=2;i<=n;++i){
        for(j=1;j<i;++j)
            cout<<edge[i][j];
        cout<<'\n';
    }
}
int main()
{
    cin>>q;
    while(q--){
        cin>>n>>m;
        solve();
    }
    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... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |