제출 #672227

#제출 시각아이디문제언어결과실행 시간메모리
672227YENGOYANRed-blue table (IZhO19_stones)C++17
11 / 100
61 ms3532 KiB
#include <bits/stdc++.h>

using namespace std;

int calc(vector<string> &v, int n, int m){
    int cnt = 0;
    for(int i = 0; i < n; i++){
        int a = 0, b= 0 ;
        for(int j = 0; j < m; j++){
            if(v[i][j] == '+') a++;
            else b++;
        }
        cnt += (a > b);
    }
    for(int j = 0; j < m; j++){
        int a = 0, b = 0;
        for(int i = 0; i < n; i++){
            if(v[i][j] == '-') a++;
            else  b++;
        }
        cnt += (a > b);
    }
    return cnt;
}

void printVec(vector<string> &v, int n, int m){
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cout << v[i][j];
        }
        cout << endl;
    }
}

vector<string> rev(vector<string> v, int n, int m){
    vector<string> a(m);
    for(int i = 0; i < n; ++i){
        for(int j = m - 1; j >= 0; --j){
            if(v[i][j]  == '+') a[m - j - 1].push_back('-');
            else a[m - j - 1].push_back('+');
        }
    }
    return a;
}

void solve(){
    int n, m; cin >> n >> m;
    bool r = 0;
    if(n > m){
        swap(n, m);
        r = 1;
    }
    vector<string> v(n);
    string s(m, '-');
    v[0] = s;
    if(n % 2 == 0  && n > 1) v[1] = s;
    string a(m / 2 + 1, '+'), b(m - (m / 2 + 1), '-');
    for(int i = 1 + (1 - (n % 2)); i < n; i++){
        if(i % 2) v[i] = a + b;
        else v[i] = b + a;
    }
    if(r){
        v = rev(v, n, m);
        swap(n, m);
    }
    cout << calc(v, n, m) << endl;
//    if(!r) printVec(v, n, m);
    printVec(v, n, m);

}

int main(){
    int t; cin >> t; while(t--)
        solve();
}
#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...