题目链接: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;
}