题目链接:B-球格模型(简单版)_牛客周赛 Round 74

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define stoi stoll
#define endl '\n'

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0), std::cout.tie(0);
    int n,m,k;
    cin>>n>>m>>k;
    if (k<n||k<m) {
        cout<<"-1"<<endl;
        return 0;
    }
    int arr[n+1][m+1]={0};
    int sum=0;
if (n>=m) {
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) { //放入对角线
            if (i==j) {
                arr[i][j]=1;
                sum++;
            }
            else if (j==m&&i>m) { //对角线填完后 全部放入右下角顶点下(右)面的所有点
                arr[i][j]=1;
                sum++;
            }
        }
    }
} else {
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            if (i==j) {
                arr[i][j]=1;
                sum++;
            }
            else if (j>n&&i==n) { //同上
                arr[i][j]=1;
                sum++;
            }
        }
    }
}
    arr[1][1]=1+(k-sum); //剩下的放在左上角
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            cout<<arr[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}