Submission #532479

#TimeUsernameProblemLanguageResultExecution timeMemory
532479syl123456Red-blue table (IZhO19_stones)C++17
0 / 100
11 ms964 KiB
#include <bits/stdc++.h> #define all(i) (i).begin(), (i).end() using namespace std; void Debug(bool _split) {} template<typename T1, typename ...T2> void Debug(bool _split, T1 i, T2 ...j) { if (_split) cerr << ", "; cerr << i; Debug(true, j...); } #define debug(args...) cerr << "Line(" << __LINE__ << ") : [" << #args << "] is [", Debug(false, args), cerr << "]" << endl template<typename T1, typename T2> ostream& operator << (ostream& i, pair<T1, T2> j) { return i << '(' << j.first << ", " << j.second << ')'; } typedef long long ll; typedef pair<int, int> pi; const int inf = 0x3f3f3f3f, lg = 20; const ll mod = 1e9 + 7, INF = 0x3f3f3f3f3f3f3f3f; signed main() { ios::sync_with_stdio(0), cin.tie(0); int t; cin >> t; while (t--) { int n, m; cin >> n >> m; pi ans(n, 0); if (m > n) ans = pi(0, m); for (int i = n; i; --i) for (int j = m; j; --j) { if (i + j <= ans.first + ans.second) break; int x = n + 2 >> 1, y = m + 2 >> 1; x = max(0, x - n + i), y = max(0, y - m + j); if (!y || x * ((j - 1) / (j - y) + 1) <= i) ans = pi(i, j); } cout << ans.first + ans.second << '\n'; int x = n + 2 >> 1, y = m + 2 >> 1; x = max(0, x - n + ans.first), y = max(0, y - m + ans.second); for (int i = 0; i < n; ++i) { if (i >= ans.first) { cout << string(m, '-') << '\n'; continue; } int l, r; if (x) l = m - ans.second + i / x * (m - ans.second - y), r = l + m - ans.second - y; else l = r = -1; for (int j = 0; j < m; ++j) cout << (l <= j && j < r ? '-' : '+'); cout << '\n'; } } }

Compilation message (stderr)

stones.cpp: In function 'int main()':
stones.cpp:37:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   37 |                 int x = n + 2 >> 1, y = m + 2 >> 1;
      |                         ~~^~~
stones.cpp:37:43: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   37 |                 int x = n + 2 >> 1, y = m + 2 >> 1;
      |                                         ~~^~~
stones.cpp:43:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   43 |         int x = n + 2 >> 1, y = m + 2 >> 1;
      |                 ~~^~~
stones.cpp:43:35: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   43 |         int x = n + 2 >> 1, y = m + 2 >> 1;
      |                                 ~~^~~
#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...