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 <vector>
using namespace std;
namespace Solution {
int n, m;
char field[1013][1013];
int countAns() {
vector<int> rows (n, 0), columns (m, 0);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (field[i][j] == '+') {
rows[i]++, columns[j]++;
} else {
rows[i]--, columns[j]--;
}
}
}
int res = 0;
for (int i = 0; i < n; i++) {
if (rows[i] > 0) ++res;
}
for (int i = 0; i < m; i++) {
if (columns[i] < 0) ++res;
}
return res;
}
void solve() {
cin >> n >> m;
int ans = max(n + m / 2 - (m % 2 == 0), m + n / 2 - (n % 2 == 0));
if (ans == n + m / 2 - (m % 2 == 0)) {
for (int i = 0; i < n; i++) fill(field[i], field[i] + m, '+');
for (int i = 0; i < m / 2 - (m % 2 == 0); i++) {
for (int j = 0; j < n / 2 + 1; j++) {
field[(i + j) % n][i] = '-';
}
}
} else {
for (int i = 0; i < n; i++) fill(field[i], field[i] + m, '-');
for (int i = 0; i < n / 2 - (n % 2 == 0); i++) {
for (int j = 0; j < m / 2 + 1; j++) {
field[i][(i + j) % m] = '+';
}
}
}
cout << countAns() << '\n';
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << field[i][j];
}
cout << '\n';
}
}
}
int main() {
int t;
cin >> t;
while (t--) {
Solution::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... |