Submission #168868

#TimeUsernameProblemLanguageResultExecution timeMemory
168868ptreapRed-blue table (IZhO19_stones)C++14
27 / 100
87 ms1400 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <unordered_set> #include <map> #include <unordered_map> #include <string> #include <cmath> #include <iomanip> #include <stdio.h> #include <ctime> #include <fstream> #include <chrono> #define _GLIBCXX_DEBUG #define int long long #define double long double #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define sz(x) (int)x.size() #define pb push_back; #pragma GCC optimize("unroll-loops") #pragma GCC optimize("Ofast") #pragma GCC optimize("no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native") #pragma GCC optimize("fast-math") #pragma GCC optimize "-O3" typedef int supertype; using namespace std; void solve() { int n, m; cin >> n >> m; int bestI = 0, best = 0; for (int i = 0; i <= n; i++) { int now = i, need = max(0LL, n / 2 + 1 - (n - i)); if (need == 0) now += m; else if (need <= i) { now += min(m, i * (m - (m / 2 + 1)) / need); } if (need <= i && now > best) { best = now; bestI = i; } } cout << best << endl; vector <vector <char>> ans(n, vector <char>(m, '-')); for (int i = 0; i < bestI; i++) { for (int j = 0; j < m; j++) { ans[i][j] = '+'; } } int need = max(0LL, n / 2 + 1 - (n - bestI)); if (need > 0) { vector <int> canGive(bestI, m - (m / 2 + 1)); for (int j = 0; j < m; j++) { int now = need; for (int i = 0; i < bestI && now > 0; i++) { if (canGive[i] > 0) { now--; canGive[i]--; ans[i][j] = '-'; } } } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << ans[i][j]; } cout << endl; } } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); srand(time(NULL)); //freopen("sort.in", "r", stdin); //freopen("sort.in", "r", stdin); int tests = 1; cin >> tests; while (tests--) { 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...