제출 #1143555

#제출 시각아이디문제언어결과실행 시간메모리
1143555crispxxRed-blue table (IZhO19_stones)C++20
17 / 100
2096 ms448 KiB
/**
 *    author: a.k
 *    created: idk
**/
#include <bits/stdc++.h>
using namespace std;
 
#define all(x) x.begin(), x.end()
#define int long long
#define nl '\n'

void solve() {
	int n, m; cin >> n >> m;
	
	int opt = 0;
	vector ans(n, vector(m, false));
	
	for(int mask = 0; mask < (1 << (n * m)); mask++) {
		vector cur(n, vector(m, false));
		for(int i = 0; i < n; i++) {
			for(int j = 0; j < m; j++) {
				if(mask >> (i * m + j) & 1) {
					cur[i][j] = true;
				}
			}
		}
		int A = 0, B = 0;
		for(int i = 0; i < n; i++) {
			int a = 0, b = 0;
			for(int j = 0; j < m; j++) {
				if(cur[i][j]) a++;
				else b++;
			}
			if(a > b) {
				A++;
			}
		}
		for(int j = 0; j < m; j++) {
			int a = 0, b = 0;
			for(int i = 0; i < n; i++) {
				if(cur[i][j]) a++;
				else b++;
			}
			if(b > a) {
				B++;
			}
		}
		if(opt < A + B) {
			opt = A + B;
			ans = cur;
		}
	}
	cout << opt << nl;
	for(auto row : ans) {
		for(auto i : row) {
			cout << (i ? '+' : '-');
		}
		cout << nl;
	}
}

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int tt; cin >> tt;
	while(tt--) 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...