#include <iostream>
#include <deque>
using namespace std;
char a[1005][1005];
int num[1005];
int solve(int n, int m, int p = 0, int sw = 0){
for (int i=0;i<=n;i++)
num[i] = m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
a[i][j] = '+';
deque<int> d;
while (d.size() + d.size() <= n)
d.push_back(d.size());
int Ans = n;
for (int j=0;j<m;j++){
bool t = 1;
for (int i : d)
t &= (num[i] - 1) * 2 > m;
if (!t)
break;
Ans++;
for (int i : d)
num[i]--, a[i][j] = '-';
d.push_back((d.back() + 1) % n);
d.pop_front();
}
if (p == 0) return Ans;
cout<<Ans<<'\n';
if (sw){
for (int j=0;j<m;j++){
for (int i=0;i<n;i++)
a[i][j] = '+' + '-' - a[i][j], cout<<a[i][j];
cout<<'\n';
}
return Ans;
}
for (int i=0;i<n;i++){
for (int j=0;j<m;j++)
cout<<a[i][j];
cout<<'\n';
}
return Ans;
}
int main(){
int n, m, t;
cin>>t;
while (t--){
cin>>n>>m;
if (solve(n, m) > solve(m, n))
solve(n, m, 1, 0);
else
solve(m, n, 1, 1);
}
}
# | 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... |