Submission #1134006

#TimeUsernameProblemLanguageResultExecution timeMemory
1134006noyancanturkRed-blue table (IZhO19_stones)C++20
100 / 100
4 ms3400 KiB
#include<bits/stdc++.h>
using namespace std;

void solve(){
  int n,m;
  cin>>n>>m;
  int ans1=n,ans2=m;
  string s1[n],s2[n];
  for(int i=0;i<n;i++){
    s1[i]=string(m,'+');
    s2[i]=string(m,'-');
  }
  int last=0,did=0;
  for(int i=0;i<m;i++){
    int placed=0;
    while(placed<=n-placed){
      if(last==n){
        last=0;
        did++;
        continue;
      }
      if(m-did-1<=did+1){
        break;
      }
      placed++;
      s1[last++][i]='-';
    }
    if(n-placed<placed)ans1++;
    else{
      for(int j=0;j<n;j++){
        s1[j][i]='+';
      }
      break;
    }
  }
  last=0,did=0;
  for(int i=0;i<n;i++){
    int placed=0;
    while(placed<=m-placed){
      if(last==m){
        last=0;
        did++;
        continue;
      }
      if(n-did-1<=did+1){
        break;
      }
      placed++;
      s2[i][last++]='+';
    }
    if(m-placed<placed)ans2++;
    else{
      for(int j=0;j<m;j++){
        s2[i][j]='-';
      }
      break;
    }
  }
  if(ans2<ans1){
    cout<<ans1<<'\n';
    for(int i=0;i<n;i++)cout<<s1[i]<<'\n';
  }else{
    cout<<ans2<<'\n';
    for(int i=0;i<n;i++)cout<<s2[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...