Submission #1010626

#TimeUsernameProblemLanguageResultExecution timeMemory
1010626LucaIlieRed-blue table (IZhO19_stones)C++17
11 / 100
24 ms2156 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 1000;
char mat[MAX_N][MAX_N];
int sumL[MAX_N], sumC[MAX_N];

int main() {
    int t;

    cin >> t;
    for ( ; t > 0; t-- ) {
        int n, m;

        cin >> n >> m;

        if ( n % 2 == 1 ) {
            for ( int l = 0; l < n; l++ ) {
                for ( int c = 0; c < m; c++ ) {
                    if ( l == n - 1 && m != 1 )
                        mat[l][c] = '-';
                    else {
                        if ( l < n / 2 ) {
                            if ( c <= m / 2 )
                                mat[l][c] = '+';
                            else
                                mat[l][c] = '-';
                        } else {
                            if ( c < m / 2 )
                                mat[l][c] = '-';
                            else
                                mat[l][c] = '+';
                        }
                    }
                }
            }
        } else {
            for ( int l = 0; l < n; l++ ) {
                for ( int c = 0; c < m; c++ ) {
                    if ( l >= n - 2 && m != 1 )
                        mat[l][c] = '-';
                    else {
                        if ( l < n / 2 ) {
                            if ( c <= m / 2 )
                                mat[l][c] = '+';
                            else
                                mat[l][c] = '-';
                        } else {
                            if ( c < m / 2 )
                                mat[l][c] = '-';
                            else
                                mat[l][c] = '+';
                        }
                    }
                }
            }
        }

        for ( int l = 0; l < n; l++ )
            sumL[l] = 0;
        for ( int c = 0; c < m; c++ )
            sumC[c] = 0;
        for ( int l = 0; l < n; l++ ) {
            for ( int c = 0; c < m; c++ ) {
                sumL[l] += (mat[l][c] == '+' ? 1 : -1);
                sumC[c] += (mat[l][c] == '+' ? -1 : +1);
            }
        }

        int r = 0;
        for ( int l = 0; l < n; l++ )
            r += (sumL[l] > 0);
        for ( int c = 0; c < m; c++ )
            r += (sumC[c] > 0);

        cout << r << "\n";
        for ( int l = 0; l < n; l++ ) {
            for ( int c = 0; c < m; c++ )
                cout << mat[l][c];
            cout << "\n";
        }
    }

    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...