This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for (int i = (a); i <= (b); i++)
#define repa(i,a,b) for (int i = (a); i >= (b); i--)
#define lli long long int
#define debug(a) cout << #a << " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "
#define MAX 1000
lli t,fil,col,a,b,res,c,f,x;
char arr[MAX+2][MAX+2];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> t;
rep(i,1,t) {
cin >> fil >> col;
a = 0;
b = 0;
if (fil&1) a++;
else a += 2;
if (col&1) a++;
else a += 2;
b = min(fil,col);
c = b;
b = (b-1)/2;
c -= b;
res = fil+col;
if (c <= a) {
res -= c;
//solucion de bruta
if (col > fil) {
rep(j,1,col) {
rep(i,1,fil) {
if (i <= b) arr[i][j] = '+';
else arr[i][j] = '-';
}
}
}
else {
rep(i,1,fil) {
rep(j,1,col) {
if (j <= b) arr[i][j] = '-';
else arr[i][j] = '+';
}
}
}
}
else {
res -= a;
f = fil;
if (fil&1) f--;
else f -= 2;
c = col;
if (col&1) c--;
else c -= 2;
rep(i,1,f) {
rep(j,1,c) {
x = i+j;
if (x&1) arr[i][j] = '+';
else arr[i][j] = '-';
}
}
rep(i,1,f) {
rep(j,c+1,col) arr[i][j] = '+';
}
rep(j,1,c) {
rep(i,f+1,fil) arr[i][j] = '-';
}
rep(i,f+1,fil) {
rep(j,c+1,col) arr[i][j] = '+';
}
}
cout << res << "\n";
rep(i,1,fil) {
rep(j,1,col) cout << arr[i][j];
cout << "\n";
}
}
}
# | 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... |