#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
#define ll long long
#define pb push_back
#define m_pi 2 * acos(0.0)
#define all(a) (a).begin(), (a).end()
#define LL_INF 0x3f3f3f3f3f3f3f3f
#define INF 0x3f3f3f3f
void solve();
constexpr bool isTc = 1;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
if (isTc)
{
int T;
cin >> T;
while (T--)
{
solve();
}
}
else
solve();
return 0;
}
/*######################################*/
void solve()
{
ll N, M, K;
cin >> N >> M >> K;
if(N%2 != 0 || M %2 != 0)
{
cout << "NO\n";
return;
}
if(K == 1)
{
if(N != 2 || M != 2)
{
cout << "NO\n";
}
else
{
cout << "YES\n1 1\n1 1\n";
}
return;
}
if(K > N*M/4)
{
cout << "NO\n";
return;
}
cout << "YES\n";
vector<vector<ll>> mp(N, vector<ll>(M, -1));
auto place = [&](ll x, ll y, ll val) -> void
{
mp[x*2][y*2] = val;
mp[x*2+1][y*2] = val;
mp[x*2][y*2+1] = val;
mp[x*2+1][y*2+1] = val;
};
vector<pair<ll,ll>> li;
ll cnt = 0;
for(ll i = 0; i < N/2; i++)
{
for(ll k = 0; k < M/2; k++)
{
cnt++;
place(i,k, ((i+k)%2)+1);
if(cnt > 2)
li.push_back({i, k});
}
}
for(ll i = 3; i <= K; i++)
{
assert(!li.empty());
place(li.back().first, li.back().second, i);
li.pop_back();
}
for(auto &i : mp)
{
for(auto k : i) cout << k << " ";
cout << "\n";
}
}
# | 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... |