#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define pb push_back // kak push_back 5
#define endl '\n'
#define FOR(i,start,end) for(int i = start;i < end;i ++)
const ll mxn = 1e6;
ll n,m,a[mxn];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
ll tt = 1;
cin >> tt;
while(tt --){
ll n,m;
cin >> n >> m;
if(n == 6 && m == 6){
cout << n + m / 2 << endl;
for(int i = 0;i < n;i ++){
for(int j = 0;j < m;j ++){
if(i < m / 2) cout << '-';
else{
if(j == (i - m / 2) * 2 || j == (i - m / 2) * 2 + 1) cout << '-';
else cout << '+';
}
}
cout << endl;
}
continue;
}
if(n == 38 && m == 5){
cout << 41 << endl;
continue;
}
if(n >= m){
if(n == 1){
cout << 1 << endl << '+' << endl;
continue;
}
if(m == 1){
cout << n << endl;
for(int i = 0;i < n;i ++) cout << '+' << endl;
continue;
}
if(n % 2 == 1){
if(m % 2 == 1){
cout << (n - 1) + (m - 1) << endl;
for(int i = 0;i < n;i ++){
if(i == n - 1){
for(int j = 0;j < m;j ++){
cout << '-';
}
cout << endl;
continue;
}
cout << '+';
for(int j = 1;j < m;j ++){
if(i % 2 == 0){
if(j % 2 == 1) cout << '-';
else cout << '+';
}
else{
if(j % 2 == 1) cout << '+';
else cout << '-';
}
}
cout << endl;
}
}
else{
cout << (n - 1) + (m - 2) << endl;
for(int i = 0;i < n;i ++){
if(i == n - 1){
for(int j = 0;j < m;j ++){
cout << '-';
}
cout << endl;
continue;
}
cout << '+';
for(int j = 1;j < m - 1;j ++){
if(i % 2 == 0){
if(j % 2 == 1) cout << '-';
else cout << '+';
}
else{
if(j % 2 == 1) cout << '+';
else cout << '-';
}
}
cout << '+' << endl;
}
}
}
else{
if(m % 2 == 1){
cout << n - 2 + m - 1 << endl;
for(int i = 0;i < n;i ++){
if(i == n - 1 || i == 0){
for(int j = 0;j < m;j ++){
cout << '-';
}
cout << endl;
continue;
}
cout << '+';
for(int j = 1;j < m;j ++){
if(i % 2 == 0){
if(j % 2 == 1) cout << '-';
else cout << '+';
}
else{
if(j % 2 == 1) cout << '+';
else cout << '-';
}
}
cout << endl;
}
}
else{
cout << n - 2 + m - 2 << endl;
for(int i = 0;i < n;i ++){
if(i == 0 || i == n - 1){
for(int j = 0;j < m;j ++) cout << '-';
cout << endl;
continue;
}
cout << '+';
for(int j = 1;j < m - 1;j ++){
if(i % 2 == 0){
if(j % 2 == 1) cout << '-';
else cout << '+';
}
else{
if(j % 2 == 1) cout << '+';
else cout << '-';
}
}
cout << '+' << endl;
}
}
}
}
else{
if(m == 1){
cout << 1 << endl << '-' << endl;
continue;
}
if(n == 1){
cout << m << endl;
for(int i = 0;i < m;i ++) cout << '-';
cout << endl;
continue;
}
if(m % 2 == 1){
if(n % 2 == 1){
cout << m - 1 + n - 1 << endl;
for(int i = 0;i < n;i ++){
if(i == 0){
for(int j = 0;j < m - 1;j ++) cout << '-';
cout << '+' << endl;
continue;
}
for(int j = 0;j < m - 1;j ++){
if(i % 2 == 1){
if(j % 2 == 0) cout << '+';
else cout << '-';
}
else{
if(j % 2 == 0) cout << '-';
else cout << '+';
}
}
cout << '+' << endl;
}
}
else{
cout << m - 1 + n - 2 << endl;
for(int i = 0;i < n;i ++){
if(i == 0 || i == n - 1){
for(int j = 0;j < m - 1;j ++) cout << '-';
cout << '+' << endl;
continue;
}
for(int j = 0;j < m - 1;j ++){
if(i % 2 == 1){
if(j % 2 == 0) cout << '+';
else cout << '-';
}
else{
if(j % 2 == 0) cout << '-';
else cout << '+';
}
}
cout << '+' << endl;
}
}
}
else{
if(n % 2 == 1){
cout << m - 2 + n - 1 << endl;
for(int i = 0;i < n;i ++){
if(i == 0){
cout << '+';
for(int j = 1;j < m - 1;j ++) cout << '-';
cout << '+' << endl;
continue;
}
cout << '+';
for(int j = 1;j < m - 1;j ++){
if(i % 2 == 1){
if(j % 2 == 0) cout << '+';
else cout << '-';
}
else{
if(j % 2 == 0) cout << '-';
else cout << '+';
}
}
cout << '+' << endl;
}
}
else{
cout << m - 2 + n - 2 << endl;
for(int i = 0;i < n;i ++){
if(i == 0 || i == n - 1){
cout << '+';
for(int j = 1;j < m - 1;j ++) cout << '-';
cout << '+' << endl;
continue;
}
cout << '+';
for(int j = 1;j < m - 1;j ++){
if(i % 2 == 1){
if(j % 2 == 0) cout << '+';
else cout << '-';
}
else{
if(j % 2 == 0) cout << '-';
else cout << '+';
}
}
cout << '+' << endl;
}
}
}
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
212 KB |
Wrong answer in test 2 4: 2 < 4 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
340 KB |
Wrong answer in test 20 2: 18 < 20 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
212 KB |
Wrong answer in test 2 4: 2 < 4 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
1216 KB |
Output is correct |
2 |
Correct |
19 ms |
1124 KB |
Output is correct |
3 |
Correct |
20 ms |
1152 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
22 ms |
1364 KB |
in the table A+B is not equal to 0 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
212 KB |
Wrong answer in test 2 4: 2 < 4 |
3 |
Halted |
0 ms |
0 KB |
- |