Submission #1156257

#TimeUsernameProblemLanguageResultExecution timeMemory
1156257Ghulam_JunaidRed-blue table (IZhO19_stones)C++20
0 / 100
2094 ms1624 KiB
#include <bits/stdc++.h> using namespace std; void solve(){ int n, m; cin >> n >> m; bool sw = 0; if (n < m) sw = 1, swap(n, m); vector<vector<char>> output(n), tmp(n); for (int i = 0; i < n; i ++) output[i].resize(m), tmp[i].resize(m); for (int i = 0; i < n; i ++) for (int j = 0; j < m; j ++) output[i][j] = '+'; int ans = m - (m / 2 + 1); for (int c = m - (m / 2 + 1); c <= m; c ++){ set<pair<int, int>> st; for (int i = 0; i < c; i ++) st.insert({n / 2 + 1, i}); for (int i = 0; i < n; i ++) for (int j = 0; j < m; j ++) tmp[i][j] = '+'; for (int i = 0; i < n; i ++){ vector<pair<int, int>> vec; for (int j = 0; j < m - (m / 2 + 1); j ++){ auto it = st.end(); it--; vec.push_back({(*it).first - 1, (*it).second}); tmp[i][(*it).second] = '-'; st.erase(it); } for (auto x : vec) st.insert(x); } if (st.size() and (*st.rbegin()).first > 0) break; ans = c; output = tmp; } cout << n + ans << endl; if (!sw){ for (int i = 0; i < n; i ++){ for (int j = 0; j < m; j ++) cout << output[i][j]; cout << endl; } } else{ for (int i = 0; i < m; i ++){ for (int j = 0; j < n; j ++) cout << output[j][i]; cout << endl; } } } 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...