제출 #1156283

#제출 시각아이디문제언어결과실행 시간메모리
1156283SyedSohaib_123Red-blue table (IZhO19_stones)C++20
27 / 100
19 ms1608 KiB
#include <bits/stdc++.h>

using namespace std;

#define append push_back
#define int long long

const int N=1e3+10,LG=21;
int mod=998244353;

vector<string>x(N),y(N),l(N);

void solve(int tst){
    int n,m;
    cin>>n>>m;
    string s(m,'+'),t(m,'-');
    x=y=l;
    for(int i=1;i<=n;i++){
        x[i]=s;
        y[i]=t;
    }
    int a,b;
    a=b=0;
    for(int i=1;i<=n;i++){
        for(int j=0;j<(m+1)/2-1;j++) x[i][j]='-';
    }
    for(int i=1;i<=n;i++){
        int cnt=0;
        for(int j=0;j<m;j++) cnt+=x[i][j]=='+',cnt-=x[i][j]=='-';
        a+=cnt>0;
    }
    for(int j=0;j<m;j++){
        int cnt=0;
        for(int i=1;i<=n;i++) cnt+=x[i][j]=='-',cnt-=x[i][j]=='+';
        a+=cnt>0;
    }
    for(int i=1;i<=(n+1)/2-1;i++){
        for(int j=0;j<m;j++) y[i][j]='+';
    }
    for(int i=1;i<=n;i++){
        int cnt=0;
        for(int j=0;j<m;j++) cnt+=y[i][j]=='+',cnt-=y[i][j]=='-';
        b+=cnt>0;
    }
    for(int j=0;j<m;j++){
        int cnt=0;
        for(int i=1;i<=n;i++) cnt+=y[i][j]=='-',cnt-=y[i][j]=='+';
        b+=cnt>0;
    }
    if(a<b) swap(x,y),swap(a,b);
    cout<<a<<endl;
    for(int i=1;i<=n;i++){
        cout<<x[i]<<endl;
    }
}

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    cin >> t;
    for(int i=1;i<=t;i++){
        solve(i);
        // if(i!=t) cout<<endl;
    }
}
#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...