Submission #899116

#TimeUsernameProblemLanguageResultExecution timeMemory
899116otariusRed-blue table (IZhO19_stones)C++17
17 / 100
21 ms1620 KiB
#pragma GCC optimize("Ofast") #pragma GCC target ("sse4") #include <map> #include <set> #include <cmath> #include <queue> #include <vector> #include <iomanip> #include <cstring> #include <limits.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std; #define ff first #define sc second #define pb push_back #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> #define ull unsigned long long const ll inf = 1e18; const ll mod = 1e9 + 7; const ll wmod = 998244353; #define int long long void solve(){ int n, m; cin >> n >> m; char a[n + 1][m + 1]; if (n >= m){ for (int i = 1; i <= n; i++){ for (int j = 1; j <= m; j++){ a[i][j] = '+'; } } int arr[n + 1] = {}; int l = 1, i = 1, cnt = m - (m - (m % 2 == 0)) / 2 + 1, cur = 0; while(i <= m){ if (arr[l] < (m - (m % 2 == 0)) / 2){ a[l][i] = '-'; arr[l]++; cur++; }else break; if (cur % cnt == 0)i++; if (l == n)l = 1; else l++; } }else { for (int i = 1; i <= n; i++){ for (int j = 1; j <= m; j++){ a[i][j] = '-'; } } int arr[m + 1] = {}; int l = 1, i = 1, cnt = n - (n - (n % 2 == 0)) / 2 + 1, cur = 0; while(i <= n){ if (arr[l] < (n - (n % 2 == 0)) / 2){ a[i][l] = '+'; arr[l]++; cur++; }else break; if (cur % cnt == 0)i++; if (l == m)l = 1; else l++; } } int ans = 0; for (int i = 1; i <= n; i++){ int cnt = 0; for (int j = 1; j <= m; j++){ cnt += (a[i][j] == '+'); } if (cnt > m - cnt)ans++; } for (int j = 1; j <= m; j++){ int cnt = 0; for (int i = 1; i <= n; i++){ cnt += (a[i][j] == '-'); } if (cnt > n - cnt)ans++; } cout << ans << '\n'; for (int i = 1; i <= n; i++){ for (int j = 1; j <= m; j++){ cout << a[i][j]; }cout << '\n'; } /* --+++ -+-++ -+-++ -+-++ +--++ +-+-+ +-+-+ */ } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll T = 1; 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...