#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
if (k < n || k < m) {
cout << -1;
return 0;
}
vector<vector<int>> result(n, vector<int>(m, 0));
int minrange = min(n,m);
for (int i = 0; i < minrange; i++){
result[i][i] = 1;
}
if (m > n){
for (int i = minrange; i < m; i++){
result[0][i] = 1;
}
}
else if (n > m){
for (int i = minrange; i < n; i++){
result[i][0] = 1;
}
}
result[0][0] += k - max(m,n);
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
cout << result[i][j] << ' ';
}
cout << endl;
}
}
构造了一种简单的填充方法

京公网安备 11010502036488号