제출 #1260901

#제출 시각아이디문제언어결과실행 시간메모리
1260901Braabebo10Red-blue table (IZhO19_stones)C++20
27 / 100
2071 ms4848 KiB
#include<bits/stdc++.h>
#define ll long long
#define nl "\n"
#define all(v) v.begin(),v.end()
#define baraa ios_base::sync_with_stdio(false);cin.tie(NULL);
using namespace std;

int main() {
    baraa
    ll t;
    cin >> t;
    while (t--) {
        ll n, m;
        cin >> n >> m;
        ll best = -1;
        char g[n][m];
        for (ll a = 0; a <= n; a++) {
            char grid[n][m];
            map<pair<char, ll>, vector<ll> > rows, cols;
            vector<ll> neg[n];
            for (ll i = 0; i < n; i++)
                for (ll j = 0; j < m; j++)
                    grid[i][j] = (i < a and j <= m / 2 ? '+' : '-');
            ll b = 0;
            for (ll j = m - 1; j >= 0; j--) {
                ll delta = n / 2 + 1;
                for (ll i = 0; i < n; i++)
                    delta -= (grid[i][j] == '-');
                if (delta < 0) {
                    for (ll i = 0; i < abs(delta); i++)
                        neg[i].push_back(j);
                    b++;
                } else {
                    for (ll i = 0; i < n; i++) {
                        if (delta == 0)break;
                        if (neg[i].size()) {
                            delta--;
                            swap(grid[i][j], grid[i][neg[i].back()]);
                            neg[i].pop_back();
                        }
                    }
                }
                b += (delta == 0);
            }
            // cout << a + b << nl;
            // for (ll i = 0; i < n; i++) {
            //     for (ll j = 0; j < m; j++)
            //         cout << grid[i][j] << ' ';
            //     cout << nl;
            // }
            if (best < a + b) {
                best = a + b;
                memcpy(g, grid, sizeof(grid));
            }
        }
        cout << best << nl;
        for (ll i = 0; i < n; i++) {
            for (ll j = 0; j < m; j++)
                cout << g[i][j];
            cout << nl;
        }
    }
    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...