Submission #993734

#TimeUsernameProblemLanguageResultExecution timeMemory
993734n3rm1nRed-blue table (IZhO19_stones)C++17
100 / 100
18 ms5212 KiB
#include<bits/stdc++.h>
#define endl '\n'
#define ll long long
using namespace std;
const int MAXN = 1e3+10;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
}
int n, m;
/// 1 - red
/// 0 - blue
int a[MAXN][MAXN];

int cnt[MAXN];
void solve_test()
{
    cin >> n >> m;
    int nooo = 0;
    if(n < m)
    {
        nooo = 1;
        swap(n, m);
    }
    if(n >= m)
    {
        for (int i = 1; i <= n; ++ i)
        {
            for (int j = 1; j <= m; ++ j)
                a[i][j] = 1;
        }
        memset(cnt, 0, sizeof(cnt));
        int togive = (m - 1)/2;
        int need = n/2 + 1;
        int i = 1;
        int ans = n;

        for (int j = 1; j <= m; ++ j)
        {
            if(cnt[i] >= togive)break;

            int token = need;
            while(token)
            {
                if(cnt[i] >= togive)break;
                a[i][j] = 0;
                //cout << i << " " << j << " " << endl;
                token --;
                cnt[i] ++;
                i ++;
                if(i == n+1)i = 1;
            }
            if(!token)ans ++;
        }

        if(!nooo)
        {
            cout << ans << endl;
        for (int i = 1; i <= n; ++ i)
        {
            for (int j = 1; j <= m; ++ j)
            {
                if(a[i][j] == 1)cout << '+';
                else cout << '-';
            }
            cout << endl;
        }
        }
        else
        {
            cout << ans << endl;
        for (int i = 1; i <= m; ++ i)
        {
            for (int j = 1; j <= n; ++ j)
            {
                if(a[j][i] == 0)cout << '+';
                else cout << '-';
            }
            cout << endl;
        }
        }
    }
}
int main()
{
    speed();
    int t;
    cin >> t;
    while(t --)
    {
        solve_test();
    }
    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...