답안 #340800

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
340800 2020-12-28T11:33:28 Z NachoLibre Red-blue table (IZhO19_stones) C++14
0 / 100
3 ms 364 KB
#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;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 3 ms 364 KB Wrong answer in test 4 1: 1 < 4
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 3 ms 364 KB Wrong answer in test 4 1: 1 < 4
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 364 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 3 ms 364 KB Wrong answer in test 4 1: 1 < 4