10522 2024. 04. 04 15:38:24 111 Egy trikolór mestermű cpp17 Elfogadva 100/100 171ms 15172 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M,R,G,B;
	cin>>N>>M>>R>>G>>B;
	for(int i=0;i<100;i++){
		vector<vector<char>>g(N+1,vector<char>(M+1,'0'));
		vector<pair<int,char>>v{{R,'R'},{G,'G'},{B,'B'}};
		random_shuffle(v.begin(),v.end());
		for(int i=0;i<N;i++){
			for(int j=0;j<M;j++){
				if(i%2!=j%2){
					if(v[0].first){
						v[0].first--;
						g[i][j]=v[0].second;
					}
					else if(v[2].first){
						v[2].first--;
						g[i][j]=v[2].second;
					}
				}
			}
		}
		for(int i=0;i<N;i++){
			for(int j=0;j<M;j++){
				if(i%2==j%2){
					if(v[2].first){
						v[2].first--;
						g[i][j]=v[2].second;
					}
					else if(v[1].first){
						v[1].first--;
						g[i][j]=v[1].second;
					}
				}
			}
		}
		int ok=1;
		for(int i=0;i<N;i++){
			for(int j=0;j<M;j++){
				ok&=g[i][j]!='0';
				ok&=g[i][j]!=g[i][j+1];
				ok&=g[i][j]!=g[i+1][j];
			}
		}
		if(ok){
			cout<<"YES"<<'\n';
			for(int i=0;i<N;i++){
				for(int j=0;j<M;j++){
					cout<<g[i][j];
				}
				cout<<'\n';
			}
			return 0;
		}
	}
	for(int i=0;i<100;i++){
		vector<vector<char>>g(N+1,vector<char>(M+1,'0'));
		vector<pair<int,char>>v{{R,'R'},{G,'G'},{B,'B'}};
		random_shuffle(v.begin(),v.end());
			for(int j=0;j<M;j++){
		for(int i=0;i<N;i++){
				if(i%2!=j%2){
					if(v[0].first){
						v[0].first--;
						g[i][j]=v[0].second;
					}
					else if(v[2].first){
						v[2].first--;
						g[i][j]=v[2].second;
					}
				}
			}
		}
			for(int j=0;j<M;j++){
		for(int i=0;i<N;i++){
				if(i%2==j%2){
					if(v[2].first){
						v[2].first--;
						g[i][j]=v[2].second;
					}
					else if(v[1].first){
						v[1].first--;
						g[i][j]=v[1].second;
					}
				}
			}
		}
		int ok=1;
			for(int j=0;j<M;j++){
		for(int i=0;i<N;i++){
				ok&=g[i][j]!='0';
				ok&=g[i][j]!=g[i][j+1];
				ok&=g[i][j]!=g[i+1][j];
			}
		}
		if(ok){
			cout<<"YES"<<'\n';
			for(int i=0;i<N;i++){
				for(int j=0;j<M;j++){
					cout<<g[i][j];
				}
				cout<<'\n';
			}
			return 0;
		}
	}
	cout<<"NO"<<'\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1864 KiB
2 Elfogadva 3ms 2020 KiB
subtask2 17/17
3 Elfogadva 3ms 2232 KiB
4 Elfogadva 3ms 2444 KiB
5 Elfogadva 3ms 2672 KiB
6 Elfogadva 3ms 2892 KiB
7 Elfogadva 3ms 3104 KiB
8 Elfogadva 3ms 3088 KiB
9 Elfogadva 3ms 3212 KiB
10 Elfogadva 3ms 3292 KiB
11 Elfogadva 3ms 3356 KiB
12 Elfogadva 3ms 3360 KiB
subtask3 21/21
13 Elfogadva 6ms 3600 KiB
14 Elfogadva 128ms 3668 KiB
15 Elfogadva 3ms 3824 KiB
16 Elfogadva 3ms 4080 KiB
17 Elfogadva 19ms 4200 KiB
subtask4 23/23
18 Elfogadva 6ms 4984 KiB
19 Elfogadva 6ms 5000 KiB
20 Elfogadva 171ms 5156 KiB
21 Elfogadva 6ms 4700 KiB
subtask5 39/39
22 Elfogadva 3ms 4220 KiB
23 Elfogadva 12ms 9664 KiB
24 Elfogadva 6ms 4364 KiB
25 Elfogadva 6ms 4580 KiB
26 Elfogadva 3ms 4452 KiB
27 Elfogadva 6ms 4796 KiB
28 Elfogadva 6ms 4684 KiB
29 Elfogadva 18ms 15172 KiB
30 Elfogadva 4ms 4708 KiB
31 Elfogadva 68ms 5020 KiB
32 Elfogadva 3ms 4560 KiB