Submission #146161

#TimeUsernameProblemLanguageResultExecution timeMemory
146161imeimi2000Red-blue table (IZhO19_stones)C++17
100 / 100
15 ms2296 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; char ans[1001][1002]; void solve() { int n, m; cin >> n >> m; int aA = 0, aB = 0; if (n < m) aB = m; else aA = n; for (int A = 0; A <= n; ++A) { for (int B = 0; B <= m; ++B) { if (A + B <= aA + aB) continue; if ((n - 1 >> 1) < (A * max(B - (m - 1 >> 1), 0) + B - 1) / B) continue; aA = A; aB = B; } } printf("%d\n", aA + aB); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { if (j > aB) ans[i][j] = '+'; else ans[i][j] = '-'; } ans[i][m + 1] = 0; } const int C = max(aB - (m - 1 >> 1), 0); for (int i = 1, j = 1; i <= aA; ++i) { for (int k = 0; k < C; ++k) { ans[i][j] = '+'; j = j % aB + 1; } } for (int i = 1; i <= n; ++i) printf("%s\n", ans[i] + 1); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int T; cin >> T; while (T--) solve(); return 0; }

Compilation message (stderr)

stones.cpp: In function 'void solve()':
stones.cpp:17:20: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
             if ((n - 1 >> 1) < (A * max(B - (m - 1 >> 1), 0) + B - 1) / B) continue;
                  ~~^~~
stones.cpp:17:48: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
             if ((n - 1 >> 1) < (A * max(B - (m - 1 >> 1), 0) + B - 1) / B) continue;
                                              ~~^~~
stones.cpp:30:31: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
     const int C = max(aB - (m - 1 >> 1), 0);
                             ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...