#include <iostream>
using namespace std;
inline void solve()
{
int n,m,k;
cin>>n>>m>>k;
int ans[n][m]={};
if (n%2!=m%2)
{
cout<<"NO\n";
return;
}
if (n%2)
{
cout<<"NO\n";return;
}
for (int i=0;i<=k;i++)
{
int m1=m-2*i,n1=n-2*i;
if (min(m1,n1)<1)
break;
if (m1%2==0&&n1%2==0)
{
int z=m1*n1;
if (z/4==k-i)
{
cout<<"YES\n";
for (int j=1;j<=i;j++)
{
for (int l=j-1;l<=n-j;l++)
{
ans[l][j-1]=j;
ans[l][m-j]=j;
}
for (int l=j-1;l<=m-j;l++)
{
ans[j-1][l]=j;
ans[n-j][l]=j;
}
}
int cur=i+1;
for (int j=i;j<n-i;j+=2)
{
for (int l=i;l<m-i;l+=2)
{
ans[j][l]=ans[j+1][l]=ans[j][l+1]=ans[j+1][l+1]=cur;
cur++;
}
}
for (int l=0;l<n;l++)
{
for (int j=0;j<m;j++)
cout<<ans[l][j]<<' ';
cout<<endl;
}
return;
}
}
}
cout<<"NO\n";
}
signed main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
cin>>t;
for (int i=1;i<=t;i++)
{
solve();
}
}
# | 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... |