# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
344414 | 2021-01-05T17:38:59 Z | Sprdalo | Red-blue table (IZhO19_stones) | C++17 | 42 ms | 6928 KB |
#include <bits/stdc++.h> using namespace std; #define int ll typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<double> vd; typedef vector<bool> vb; typedef vector<char> vc; typedef vector<string> vs; typedef vector<pi> vp; typedef vector<pl> vpl; void solve(int n, int m){ int k = 0; if (n > m) k = 1; vector<vi> a(n, vi(m, k)); if (n>m){ for (int j = 0; j < (m-1)/2; ++j){ for (int i = 0; i < n/2 + 1; ++i){ a[i][j] = 0; } } } else { for (int i = 0; i < (n-1)/2; ++i){ for (int j = 0; j < m/2 + 1; ++j){ a[i][j] = 1; } } } int sol = 0; for (int i = 0; i < n; ++i){ int x = 0; for (int j = 0; j < m; ++j){ x += a[i][j]; } if (x > m/2) ++sol; } for (int j = 0; j < m; ++j){ int x = 0; for (int i = 0; i < n; ++i){ x += 1 - a[i][j]; } if (x > n/2) ++sol; } cout << sol << '\n'; for (int i = 0; i < n; ++i){ for (int j = 0; j < m; ++j){ if (a[i][j]) cout << "+"; else cout << "-"; } cout << '\n'; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cerr.tie(nullptr); int t; cin >> t; for (int e = 0; e < t; ++e){ int n, m; cin >> n >> m; if (n <= 4 || m <= 4){ solve(n, m); continue; } int l,r; if (n%2){ l = r = n/2; } else { l = n/2-1; r = n/2; } vector<vi> a(n, vi(m, -1)); for (int j = 0; j < m; ++j){ a[l][j] = a[r][j] = 0; } if (m%2) l = r = m/2; else{ l = m/2-1; r = m/2; } for (int i = 0; i < n; ++i){ a[i][l] = a[i][r] = 1; } for (int i = 0; i < n/2; ++i){ for (int j = 0; j < m/2; ++j){ if (a[i][j] != -1) continue; a[i][j] = 1; } } for (int i = 0; i < n/2; ++i){ for (int j = m/2; j < m; ++j){ if (a[i][j] != -1) continue; a[i][j] = 0; } } for (int i = n/2; i < n; ++i){ for (int j = 0; j < m/2; ++j){ if (a[i][j] != -1) continue; a[i][j] = 0; } } for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) if (a[i][j] == -1) a[i][j] = 1; int sol = 0; for (int i = 0; i < n; ++i){ int x = 0; for (int j = 0; j < m; ++j){ x += a[i][j]; } if (x > m/2){ ++sol; } } for (int j = 0; j < m; ++j){ int x = 0; for (int i = 0; i < n; ++i){ x += 1 - a[i][j]; } if (x > n/2) ++sol; } cout << sol << '\n'; for (int i = 0; i < n; ++i){ for (int j = 0; j < m; ++j) if (a[i][j]) cout << "+"; else cout << "-"; cout << '\n'; } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
3 | Correct | 1 ms | 364 KB | Output is correct |
4 | Incorrect | 3 ms | 492 KB | Wrong answer in test 38 5: 40 < 41 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 42 ms | 1644 KB | Output is correct |
2 | Correct | 39 ms | 6252 KB | Output is correct |
3 | Correct | 36 ms | 6928 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 39 ms | 1876 KB | Wrong answer in test 6 6: 8 < 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
3 | Correct | 1 ms | 364 KB | Output is correct |
4 | Incorrect | 3 ms | 492 KB | Wrong answer in test 38 5: 40 < 41 |