Submission #1156298

#TimeUsernameProblemLanguageResultExecution timeMemory
1156298Jawad_Akbar_JJRed-blue table (IZhO19_stones)C++20
100 / 100
128 ms2224 KiB
#include <iostream> #include <set> #include <vector> using namespace std; char a[1005][1005]; int solve(int n, int m, int p = 0, int sw = 0){ set<pair<int,int>> s; for (int i=0;i<n;i++) s.insert({m, i}); for (int i=0;i<n;i++) for (int j=0;j<m;j++) a[i][j] = '+'; int Ans = n, d = n / 2 + 1; for (int j=0;j<m;j++){ vector<pair<int,int>> vec; for (int i=0;i<d;i++) if (((*rbegin(s)).first - 1) * 2 > m) vec.push_back(*rbegin(s)), s.erase(prev(end(s))); if (vec.size() < d) break; Ans++; for (auto [nm, i] : vec) a[i][j] = '-', s.insert({nm - 1, i}); } if (p == 0) return Ans; cout<<Ans<<'\n'; if (sw){ for (int j=0;j<m;j++){ for (int i=0;i<n;i++) a[i][j] = '+' + '-' - a[i][j], cout<<a[i][j]; cout<<'\n'; } return Ans; } for (int i=0;i<n;i++){ for (int j=0;j<m;j++) cout<<a[i][j]; cout<<'\n'; } return Ans; } int main(){ int n, m, t; cin>>t; while (t--){ cin>>n>>m; if (solve(n, m) > solve(m, n)) solve(n, m, 1, 0); else solve(m, n, 1, 1); } }
#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...