#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |