Submission #1131918

#TimeUsernameProblemLanguageResultExecution timeMemory
1131918MuhammetRed-blue table (IZhO19_stones)C++17
100 / 100
17 ms2376 KiB
#include <bits/stdc++.h>

using namespace std;

vector <vector <char>> a;

int main(){
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int T;
	cin >> T;
	while(T--){
		int n, m;
		cin >> n >> m;
		int ans = 0, n1 = n, m1 = m;
		if(n1 < m1) swap(n1,m1);
		int y = (n1*m1)-(n1*((m1/2)+1));
		ans = (n1 + (y/((n1/2)+1)));
		if(n >= m){
			a.assign(n, vector <char> (m,'+'));
			vector <int> vis(n,0), v;
			int x = 0;
			for(int j = 0; j < m; j++){
				int cnt = (n/2 + 1);
				v.clear();
				while(cnt--){
					v.push_back(x);
					// cout << x << " ";
					x++;
					x %= n;
				}
				// cout << '\n';
				bool tr = 0;
				// cout << (int)v.size() << ' ';
				for(int i = 0; i < (int)v.size(); i++){
					vis[v[i]]++;
					// cout << i << " ";
					if(vis[v[i]] > (m-(m/2 + 1))){
						tr = 1;
						break;
					}
				}
				// cout << "\n";
				if(tr == 1){
					break;
				}
				for(int i = 0; i < (int)v.size(); i++){
					a[v[i]][j] = '-';
				}
			}
		}
		else {
			a.assign(n, vector <char> (m,'-'));
			vector <int> vis(m,0), v;
			int x = 0;
			for(int j = 0; j < n; j++){
				int cnt = (m/2 + 1);
				v.clear();
				while(cnt--){
					v.push_back(x);
					x++;
					x %= m;
				}
				bool tr = 0;
				for(auto i : v){
					vis[i]++;
					if(vis[i] > (n-(n/2 + 1))){
						tr = 1;
						break;
					}
				}
				if(tr == 1) break;
				for(auto i : v){
					a[j][i] = '+';
				}
			}
		}
		cout << ans << '\n';
		for(int i = 0; i < n; i++){
			for(int j = 0; j < m; j++){
				cout << a[i][j];
			}
			cout << '\n';
		}
	}
}
#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...