#include <bits/stdc++.h>
using namespace std;
const int N = 22, M = 2e5 + 10;
int n, m, k, mat[N][M];
void color22(int i, int j, int c){
mat[i][j] = mat[i][j + 1] = c;
mat[i + 1][j] = mat[i + 1][j + 1] = c;
}
void solve(){
cin >> n >> m >> k;
if (n % 2 or m % 2 or k > (1ll * n * m) / 4){
cout << "NO" << endl;
return ;
}
if (n == 2){
if (k != m / 2){
cout << "NO" << endl;
return ;
}
for (int i = 1; i <= m; i += 2)
color22(1, i, 1 + i / 2);
}
if (n == 4){
bool done = 0;
for (int c = 4; c <= m; c += 2){
int kk = 1 + (c - 2) / 2 + m - c;
if (k != kk) continue;
done = 1;
int cur = 1;
for (int i = 2; i < c; i += 2){
color22(2, i, cur);
cur++;
}
for (int i = c + 1; i < m; i += 2){
color22(1, i, cur);
cur++;
color22(3, i, cur);
cur++;
}
for (int i = 1; i <= c; i ++)
mat[1][i] = mat[4][i] = cur;
mat[1][1] = mat[2][1] = mat[3][1] = mat[4][1] = cur;
mat[1][c] = mat[2][c] = mat[3][c] = mat[4][c] = cur;
break;
}
if (k == (n * m) / 4){
int cur = 1;
for (int i = 1; i < m; i += 2){
color22(1, i, cur);
cur++;
color22(3, i, cur);
cur++;
}
done = 1;
}
if (!done){
cout << "NO" << endl;
return ;
}
}
cout << "YES" << endl;
for (int i = 1; i <= n; i ++){
for (int j = 1; j <= m; j ++)
cout << mat[i][j] << " ";
cout << endl;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t;
cin >> t;
while (t--)
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... |