Submission #1133989

#TimeUsernameProblemLanguageResultExecution timeMemory
1133989noyancanturkRed-blue table (IZhO19_stones)C++20
27 / 100
2 ms1352 KiB
#include<bits/stdc++.h>
using namespace std;

void solve1(int n,int m){
  if(n<m){
    int k=n/2;
    while(k<=n-k)k++;
    cout<<m+n-k<<'\n';
    for(int i=0;i<k;i++){
      for(int j=0;j<m;j++){
        cout<<'-';
      }cout<<'\n';
    }
    for(int i=k;i<n;i++){
      for(int j=0;j<m;j++){
        cout<<'+';
      }cout<<'\n';
    }
  }else{
    int k=m/2;
    while(k<=m-k)k++;
    cout<<m+n-k<<'\n';
    for(int i=0;i<n;i++){
      for(int j=0;j<k;j++){
        cout<<'+';
      }for(int j=k;j<m;j++){
        cout<<'-';
      }cout<<'\n';
    }
  }
}

void solve(){
  int n,m;
  cin>>n>>m;
  if(min(n,m)<=5){
    solve1(n,m);
    return;
  }
  string s[n];
  for(int i=0;i<n;i++)s[i]=string(m,'+');
  int l=n/2;
  while(l<=n-l)l++;
  int r=m/2;
  while(m-r<=r)r--;
  for(int i=0;i<l;i++){
    for(int j=0;j<r;j++){
      s[i][j]='-';
    }
  }
  for(int i=n-1;n-l<=i;i--){
    for(int j=m-1;m-r<=j;j--){
      s[i][j]='-';
    }
  }
  int ans=n+m-4+(n&1)+(m&1);
  cout<<ans<<'\n';
  for(int i=0;i<n;i++){
    cout<<s[i]<<'\n';
  }
}

int main(){
  ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  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...