이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |