Submission #169679

#TimeUsernameProblemLanguageResultExecution timeMemory
169679blastRed-blue table (IZhO19_stones)C++14
100 / 100
224 ms2436 KiB
#include <bits/stdc++.h> //#define FILENAME "" #define all(a) (a).begin(), (a).end() #define sz(a) (int)(a).size() #define pb push_back #define F first #define S second using namespace std; //#define int long long const int N = 1e5 + 5; const int INF = 1e9 + 5; const double PI = acos(-1); typedef long long ll; const int dx[] = {1, -1, 0, 0}; const int dy[] = {0, 0, 1, -1}; const int mod = 1e9 + 7; int T, n, m; map<int,int> cnt; int main() { #ifdef FILENAME freopen(FILENAME".in", "r", stdin); freopen(FILENAME ".out", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); cin >> T; while(T--) { cin >> n >> m; char a[n + 5][m + 5]; int ans = 0; if (n <= m) { for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) a[i][j] = '-'; ans = m; for (int i = 1; i <= n; i++) { int res = (m + 2) / 2, mn = INF; for (int j = 1; j <= m; j++) { mn = min(mn, cnt[j]); } int ct = 0; for (int j = 1; j <= m; j++) { ct += (cnt[j] + 1 < (n + 1) / 2 ? 1 : 0); } if (ct < res) break; ans++; for (int j = 1; j <= m && res; j++) { if (cnt[j] == mn) { a[i][j] = '+'; cnt[j]++; res--; } } for (int j = 1; j <= m && res; j++) { if (a[i][j] != '+') { a[i][j] = '+'; cnt[j]++; res--; } } } } else { for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) a[i][j] = '+'; ans = n; for (int j = 1; j <= m; j++) { int res = (n + 2) / 2, mn = INF; for (int i = 1; i <= n; i++) { mn = min(mn, cnt[i]); } int ct = 0; for (int i = 1; i <= n; i++) { ct += (cnt[i] + 1 < (m + 1) / 2 ? 1 : 0); } if (ct < res) break; ans++; for (int i = 1; i <= n && res; i++) { if (cnt[i] == mn) { a[i][j] = '-'; cnt[i]++; res--; } } for (int i = 1; i <= n && res; i++) { if (a[i][j] != '-') { a[i][j] = '-'; cnt[i]++; res--; } } } } cout << ans << "\n"; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) cout << a[i][j]; cout << "\n"; } cnt.clear(); } 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...