제출 #340800

#제출 시각아이디문제언어결과실행 시간메모리
340800NachoLibreRed-blue table (IZhO19_stones)C++14
0 / 100
3 ms364 KiB
#include <bits/stdc++.h>
using namespace std;

int t, n, m, k, b[4], fp;
bitset<4> s[4], fps[4];

void G(int ii) {
	if(ii == n + 1) {
		int tp = 0;
		for(int i = 0; i < n; ++i) {
			int x = 0;
			for(int j = 0; j < m; ++j) {
				if(s[i][j]) ++x;
			}
			if(x > m - x) ++tp;
		}
		for(int i = 0; i < m; ++i) {
			int x = 0;
			for(int j = 0; j < n; ++j) {
				if(!s[j][i]) ++x;
			}
			if(x > n - x) ++tp;
		}
		if(tp > fp) {
			fp = tp;
			for(int i = 0; i < n; ++i) {
				fps[i] = s[i];
			}
		}
		return;
	}
	for(b[ii] = 0; b[ii] < k; ++b[ii]) {
		s[ii] = b[ii];
		G(ii + 1);
	}
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> t;
	for(int ti = 1; ti <= t; ++ti) {
		cin >> n >> m;
		if(n <= 4 && m <= 4) {
			k = (1 << m);
			fp = 0;
			G(0);
			cout << fp << "\n";
			for(int i = 0; i < n; ++i) {
				for(int j = 0; j < m; ++j) {
					if(fps[i][j]) cout << "+";
					else cout << "-";
				}
				cout << "\n";
			}
		} else {
			return 0;
		}
		#ifdef WEEE
		cout << flush;
		#endif
	}
	cout << flush;
	return 0;
}
#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...