Submission #159880

#TimeUsernameProblemLanguageResultExecution timeMemory
159880Dima_BorchukRed-blue table (IZhO19_stones)C++17
100 / 100
114 ms2396 KiB
#include <bits/stdc++.h> using namespace std; int main() { int q; cin >> q; while(q--){ int n , m , ans , z; cin >> n >> m; char a[n][m]; if(n <= m){ for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ a[i][j] = '-'; } } ans = m; vector<pair<int,int>> v(m); for(int i = 0; i < m; i++){ v[i].second = i; } int k[m]; for(int i = 0; i < m + 1; i++){ k[i] = n; } for(int line = 0; line < n; line++){ sort(v.begin(), v.end()); for(int l = 0; l < m / 2 + 1; l++){ if(k[v[l].second] - 1 > n / 2){ v[l].first++; k[v[l].second]--; a[line][v[l].second] = '+'; } } } for(int i = 0; i < n; i++){ z = 0; for(int j = 0; j < m; j++){ if(a[i][j] == '+') z++; } if(z > m / 2) ans++; } cout << ans << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << a[i][j]; } cout << endl; } } else { for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ a[i][j] = '+'; } } ans = n; vector<pair<int,int>> v(n); for(int i = 0; i < n; i++){ v[i].second = i; } int k[n]; for(int i = 0; i < n + 1; i++){ k[i] = m; } for(int line = 0; line < m; line++){ sort(v.begin(), v.end()); for(int l = 0; l < n / 2 + 1; l++){ if(k[v[l].second] - 1 > m / 2){ v[l].first++; k[v[l].second]--; a[v[l].second][line] = '-'; } } } for(int i = 0; i < m; i++){ z = 0; for(int j = 0; j < n; j++){ if(a[j][i] == '-') z++; } if(z > n / 2) ans++; } cout << ans << endl; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << a[i][j]; } cout << endl; } } } 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...