제출 #526634

#제출 시각아이디문제언어결과실행 시간메모리
526634nitr0genRed-blue table (IZhO19_stones)C++14
17 / 100
2088 ms332 KiB
#include <bits/stdc++.h> using namespace std; int ans, n, m; char a[100][100]; bool ok; int check() { int cnta = 0, cntb = 0; for(int i = 0; i < n; i++) { int cnt = 0; for(int j = 0; j < m; j++) { if(a[i][j] == '+') cnt++; } if(cnt * 2 > m) cnta++; } for(int j = 0; j < m; j++) { int cnt = 0; for(int i = 0; i < n; i++) { if(a[i][j] == '-') cnt++; } if(cnt * 2 > n) cntb++; } return cnta + cntb; } void bkt(int i, int j) { if(i == n) { ans = max(ans, check()); } else { for(auto x : {'-', '+'}) { a[i][j] = x; if(j == m-1) bkt(i+1, 0); else bkt(i, j+1); } } } void bkt2(int i, int j) { if(ok) return; if(i == n) { if(check() == ans) { ok = 1; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { cout << a[i][j]; } cout << '\n'; } } } else { for(auto x : {'-', '+'}) { a[i][j] = x; if(j == m-1) bkt2(i+1, 0); else bkt2(i, j+1); } } } void solve() { cin >> n >> m; ans = 0; ok = 0; bkt(0, 0); cout << ans << '\n'; bkt2(0, 0); } int main() { int t; cin >> t; while(t--) solve(); 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...