답안 #1093903

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1093903 2024-09-28T04:32:02 Z stdfloat Red-blue table (IZhO19_stones) C++17
0 / 100
2000 ms 348 KB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define all(v) (v).begin(), (v).end()

void solve() {
	int n, m;
	cin >> n >> m;

	int mx = 0;
	for (int mk = 0; mk < 1 << n * m; mk++) {
		vector<vector<int>> a(n, vector<int>(m));
		for (int i = 0; i < n * m; i++)
			a[i / m][i % m] = (mk >> i) & 1;

		int scr = 0;
		for (int i = 0; i < n; i++)
			scr += (count(all(a[i]), 0) > count(all(a[i]), 1));
	
		for (int i = 0; i < m; i++) {
			vector<int> cnt(2);
			for (int j = 0; j < n; j++)
				cnt[a[j][i]]++;

			scr += (cnt[1] > cnt[0]);
		}

		mx = max(mx, scr);
	}

	cout << mx << '\n';
	for (int mk = 0; mk < 1 << n * m; mk++) {
		vector<vector<int>> a(n, vector<int>(m));
		for (int i = 0; i < n * m; i++)
			a[i / m][i % m] = (mk >> i) & 1;

		int scr = 0;
		for (int i = 0; i < n; i++)
			scr += (count(all(a[i]), 0) > count(all(a[i]), 1));
	
		for (int i = 0; i < m; i++) {
			vector<int> cnt(2);
			for (int j = 0; j < n; j++)
				cnt[a[j][i]]++;

			scr += (cnt[1] > cnt[0]);
		}

		if (scr == mx) {
			for (auto i : a) {
				for (auto j : i)
					cout << (j ? '-' : '+') << ' ';
				cout << '\n';
			}
			return;
			cout << '\n';
		}
	}
}

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int T;
	cin >> T;
	while (T--) solve();
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Wrong answer
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2028 ms 344 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Wrong answer
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2053 ms 348 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2079 ms 344 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Wrong answer
2 Halted 0 ms 0 KB -