#include <bits/stdc++.h>
using namespace std;
void solve(){
int n, m;
cin >> n >> m;
bool sw = 0;
if (n < m) sw = 1, swap(n, m);
vector<vector<char>> output(n), tmp(n);
for (int i = 0; i < n; i ++)
output[i].resize(m), tmp[i].resize(m);
for (int i = 0; i < n; i ++)
for (int j = 0; j < m; j ++)
output[i][j] = '+';
int ans = m - (m / 2 + 1);
for (int c = m - (m / 2 + 1); c <= m; c ++){
set<pair<int, int>> st;
for (int i = 0; i < c; i ++)
st.insert({n / 2 + 1, i});
for (int i = 0; i < n; i ++)
for (int j = 0; j < m; j ++)
tmp[i][j] = '+';
for (int i = 0; i < n; i ++){
vector<pair<int, int>> vec;
for (int j = 0; j < m - (m / 2 + 1); j ++){
auto it = st.end();
it--;
vec.push_back({(*it).first - 1, (*it).second});
tmp[i][(*it).second] = '-';
st.erase(it);
}
for (auto x : vec)
st.insert(x);
}
if (st.size() and (*st.rbegin()).first > 0) break;
ans = c;
output = tmp;
}
cout << n + ans << endl;
if (!sw){
for (int i = 0; i < n; i ++){
for (int j = 0; j < m; j ++)
cout << output[i][j];
cout << endl;
}
}
else{
for (int i = 0; i < m; i ++){
for (int j = 0; j < n; j ++)
cout << output[j][i];
cout << endl;
}
}
}
int main(){
int t;
cin >> t;
while (t--)
solve();
return 0;
}
# | 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... |