#include <bits/stdc++.h>
using namespace std;
#define ll long long
int const N=2e5+5;
int const mod=1e9+7;
int n,m;
int calcu(vector<vector<bool>> v){
// cout<<n<<' '<<m<<endl;
int a=0;
for(int i=0;i<n;i++){
int c=0;
for(int j=0;j<m;j++)
if(v[i][j]==1)
c++;
if(c*2>m)
a++;
}
for(int j=0;j<m;j++){
int c=0;
for(int i=0;i<n;i++){
if(v[i][j]==0)
c++;
}
if(c*2>n)
a++;
}
return a;
}
void solve(){
// int n,m;
cin>>n>>m;
if(min(n,m)<=3){
int hm=(m/2)+1,hn=(n/2)+1;
if(m+(n-hn)>(n+(m-hm))){
cout<<m+(n-hn)<<endl;
for (int i = 1; i <=n; ++i)
{
for(int j=1;j<=m;j++){
if(j<=hm && i<=(n-hn))
cout<<'+';
else
cout<<'-';
}
cout<<endl;
}
}
else{
cout<<n+(m-hm)<<endl;
for (int i = 1; i <=n; ++i)
{
for(int j=1;j<=m;j++){
if(i<=hn && j<=(m-hm))
cout<<'-';
else
cout<<'+';
}
cout<<endl;
}
}
return;
}
int hm=(m/2)+1,hn=(n/2)+1;
cout<<hm<<' '<<hn<<endl;
vector<vector<bool>> a1,a2;
for(int i=1;i<=n;i++){
a1.push_back({});
for(int j=1;j<=m;j++){
if((j<=hm && i<=(n-hn)) || (i>hn && j>(m-hm)))
a1[i-1].push_back(1);
else
a1[i-1].push_back(0);
}
}
for(int i=1;i<=n;i++){
a2.push_back({});
for(int j=1;j<=m;j++){
if((i<=hn && j<=(m-hm)) || (j>hm && i>(n-hn)))
a2[i-1].push_back(1);
else
a2[i-1].push_back(0);
}
}
int aa1=calcu(a1),aa2=calcu(a2);
// cout<<aa1<<' '<<aa2<<endl;
if(aa1<aa2)
swap(a1,a2);
cout<<max(aa1,aa2)<<endl;
string st="-+";
for (int i = 0; i < n; ++i){
for (int j = 0; j < m; ++j)
cout<<st[a1[i][j]];
cout<<endl;
}
}
int main(){
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... |