Submission #1268389

#TimeUsernameProblemLanguageResultExecution timeMemory
1268389GoBananas69Red-blue table (IZhO19_stones)C++20
0 / 100
2096 ms456 KiB
#include <iostream>
#include <vector>
using namespace std;

int calc(vector<vector<char>> &grid) {
    int n = grid.size();
    int m = grid[0].size();
    int a = 0, b = 0;

    for (int i = 0; i < n; ++i) {
        int plus = 0, minus = 0;
        for (int j = 0; j < m; ++j) {
            if (grid[i][j] == '+') ++plus;
            else ++minus;
        }
        if (plus > minus) ++a;
    }

    for (int j = 0; j < m; ++j) {
        int plus = 0, minus = 0;
        for (int i = 0; i < n; ++i) {
            if (grid[i][j] == '+') ++plus;
            else ++minus;
        }
        if (minus > plus) ++b;
    }

    return a + b;
}

void _() {
    int n, m;
    cin >> n >> m;
    int total = 1 << (n * m);
    vector<vector<char>> grid(n, vector<char>(m));
    int best = 0, mx = 0;

    for (int mask = 0; mask < total; ++mask) {
        for (int j = 0; j < n * m; ++j) {
            int r = j / m;
            int c = j % m;
            if (mask & (1 << j)) grid[r][c] = '-';
            else grid[r][c] = '+';
        }
        int score = calc(grid);
        if (score > mx) {
            mx = score;
            best = mask;
        }
    }

    cout << mx << '\n';

    for (int j = 0; j < n * m; ++j) {
        int r = j / m;
        int c = j % m;
        if (best & (1 << j)) grid[r][c] = '+';
        else grid[r][c] = '-';
    }

    for (auto &r : grid) {
        for (auto &c : r) cout << c;
        cout << '\n';
    }
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int tc;
    cin >> tc;
    while (tc--) _();
}
#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...