# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
142965 | VladaMG98 | Red-blue table (IZhO19_stones) | C++17 | 43 ms | 1784 KiB |
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 <bits/stdc++.h>
using namespace std;
const int MAXN = 1010;
bool anss[MAXN][MAXN];
void solve_test() {
int n, m;
scanf("%d %d", &n, &m);
int ans = 0, best_A = -1;
for(int A = 0; A <= n; A++) {
int half = m / 2 + 1;
int D = (m - half) * A;
int need = max(0, n / 2 + 1 - (n - A));
int B;
if(need == 0) B = m;
else B = min(m, D / need);
if(A + B > ans) {
ans = A + B;
best_A = A;
}
}
printf("%d\n", ans);
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
anss[i][j] = false;
}
}
int s = 0;
int half = m / 2 + 1;
for(int i = 0; i < best_A; i++) {
for(int j = 0; j < half; j++) {
anss[i][(s + j) % m] = true;
}
s = (s + half) % m;
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(anss[i][j]) printf("+");
else printf("-");
}
printf("\n");
}
}
int main() {
int tests;
scanf("%d", &tests);
while(tests--) {
solve_test();
}
return 0;
}
Compilation message (stderr)
# | 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... |