제출 #881046

#제출 시각아이디문제언어결과실행 시간메모리
881046dubabubaRed-blue table (IZhO19_stones)C++14
15 / 100
26 ms8028 KiB
#include <bits/stdc++.h> using namespace std; const int mxn = 1010; int a[mxn][mxn], n, m; int b[mxn][mxn]; void go() { cin >> n >> m; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) a[i][j] = 0; bool rev = false; if(m > n) { swap(n, m); rev = true; } int mn_r = (m / 2) + 1, mx_b = m - mn_r; int mx_r = (n - 1) / 2, mn_b = n - mx_r; int i = 0, t = 0; if(mx_b != 0) for(int j = 0; j < m; j++) { if(n - i >= mn_b) { for(int cnt = 0; cnt < mn_b; cnt++, i++) { a[i][j] = 1; } continue; } if(t == mx_b - 1) break; t++; for(int cnt = 0; cnt < mn_b; cnt++, i++) { i %= n; a[i][j] = 1; } } int ans = 0; for(int i = 0; i < n; i++) { int sum = 0; for(int j = 0; j < m; j++) if(a[i][j] == 0) sum++; if(sum > m / 2) ans++; } for(int j = 0; j < m; j++) { int sum = 0; for(int i = 0; i < n; i++) if(a[i][j]) sum++; if(sum > n / 2) ans++; } cout << ans << '\n'; if(rev) for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) b[j][i] = 1 - a[i][j]; else for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) b[i][j] = a[i][j]; if(rev) swap(n, m); // cout << rev << '\n'; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) if(b[i][j]) cout << '-'; else cout << '+'; cout << '\n'; } } int main() { int T; cin >> T; while(T--) go(); return 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...