Submission #1143596

#TimeUsernameProblemLanguageResultExecution timeMemory
1143596Kaztaev_AlisherGardening (RMI21_gardening)C++20
0 / 100
13 ms5444 KiB
#include <bits/stdc++.h>

#define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
#define all(a) a.begin() , a.end()
#define F first
#define S second
#define int ll 

using namespace std;
using ll = long long;


const ll N = 2e5+5  , inf = 2e9+7;
const ll INF = 1e18 ,   mod = 987654321;

vector<int> a[N];
int n , m , k;
bool check(){
	for(int  i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(a[i][j] == 0) a[i][j] = 1;
		}
	}
	for(int  i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(a[i][j] == 0) a[i][j] = 1;
			int cur = (a[i][j] == a[i+1][j]);
			cur += (a[i][j] == a[i-1][j]);
			cur += (a[i][j] == a[i][j+1]);
			cur += (a[i][j] == a[i][j-1]);
			if(cur < 1) return 0;
		}
	}
	return 1;
}
void solve(){
	cin >> n >> m >> k; 
	for(int i = 0; i <= n+1; i++){
		a[i].resize(m+9);
	}
	if((n/2)*(m/2) < k || n == 1 || m == 1) {
		cout << "NO\n";
	} else {
		int cur = 1;
		for(int  i = 1; i <= n; i++){
			for(int j = 1; j <= m; j++){
				a[i][j] = 0;
			}
		}
		for(int i = 1; i+1 <= n; i+=2){
			for(int j = 1; j+1 <= m; j+=2){
				if(cur == k) continue;
				a[i][j] = a[i+1][j] = a[i][j+1] = a[i+1][j+1] = ++cur;	
			}
		}
		for(int j = 1; j <= m; j++){
			if(n%2)a[n][j] = a[n-1][j];
		}
		for(int j = 1; j <= n; j++){
			if(m%2)a[j][m] = a[j][m-1];
		}
		if(check()){
			cout << "YES\n";
			for(int  i = 1; i <= n; i++){
				for(int j = 1; j <= m; j++){
					cout << a[i][j] <<" ";
				}
				cout << "\n";
			}
		} else {
			cout << "NO\n";
		}
	}
}
/*
*/
signed main(){
	ios;
	int t;
	cin >> t;
	while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...