#include <iostream>
#include <vector>
using namespace std;
int calc(vector<char> &c, int n, int m) {
int a = 0, b = 0;
for (int r = 0; r < n; r++) {
int plus = 0, minus = 0;
for (int col = 0; col < m; col++) {
if (c[r * m + col] == '+') plus++;
else minus++;
}
if (plus > minus) a++;
}
for (int col = 0; col < m; col++) {
int plus = 0, minus = 0;
for (int r = 0; r < n; r++) {
if (c[r * m + col] == '+') plus++;
else minus++;
}
if (minus > plus) b++;
}
return a + b;
}
void _() {
int n, m;
cin >> n >> m;
int tot = n * m;
int t = 1 << tot;
vector<char> grid(tot);
int s, mx = 0;
for (int mask = 0; mask < t; ++mask) {
for (int j = 0; j < tot; ++j) {
if ((mask >> j) & 1) grid[j] = '+';
else grid[j] = '-';
}
int curr = calc(grid, n, m);
if (curr > mx) {
s = mask;
mx = curr;
}
}
cout << mx << '\n';
for (int j = 0; j < tot; ++j) {
if ((s >> j) & 1) grid[j] = '-';
else grid[j] = '+';
}
for (int r = 0; r < n; ++r) {
for (int c = 0; c < m; ++c) {
cout << grid[r * m + c] << ' ';
}
cout << "\n";
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
int tc;
cin >> tc;
while (tc--) {
_();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |