Submission #241550

#TimeUsernameProblemLanguageResultExecution timeMemory
241550valerikkRed-blue table (IZhO19_stones)C++14
0 / 100
2076 ms1404 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; // typedef double ld; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<ll> vl; typedef vector<vl> vvl; typedef vector<ld> vd; typedef vector<vd> vvd; typedef complex<ld> cd; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef pair<ld, ld> pdd; typedef vector<char> vc; typedef vector<vc> vvc; typedef string str; #define int ll template<class A, class B> inline bool mmin(A& a, B b) { if (b < a) { a = b; return 1; } return 0; } template<class A, class B> inline bool mmax(A& a, B b) { if (b > a) { a = b; return 1; } return 0; } ld nxt_ld() { string s; cin >> s; return stold(s); } #define x first #define y second #define pb push_back #define eb emplace_back #define pf push_front #define ef emplace_front #define ppb pop_back #define ppf pop_front #define sz(a) (int)(a).size() #define all(a) (a).begin(), (a).end() #define rall(a) (a).rbegin(), (a).rend() signed main() { /*freopen("cbarn.in", "r", stdin); freopen("cbran.out", "w", stdout);*/ ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while (t--) { int n, m; cin >> n >> m; int mn = m / 2 + 1, q = n / 2 + 1; int ansr = n, ansc = 0; for (int i = 0; i <= n; i++) { int l = 0, r = m + 1; while (r - l > 1) { int md = (l + r) / 2; vector<int> cur(md, 0); int now = 0; for (int j = 0; j < i; j++) { int zz = max(0LL, mn - m + md); while (zz--) { cur[now]++; now++; now %= md; } } bool ok = 1; for (auto x : cur) { if (n - x < q) { ok = 0; break; } } /*if (md == 3 && i == 1) { cout << "db: "; for (auto x : cur) cout << x << " "; cout << endl; }*/ if (ok) l = md; else r = md; } if (i + l > ansr + ansc) { ansr = i; ansc = l; } } cout << ansr + ansc << '\n'; vvc ans(n, vc(m, '-')); int now = 0; for (int i = 0; i < ansr; i++) { int zz = max(0LL, mn - m + ansc); while (zz--) { ans[i][now] = '+'; now++; now %= ansc; } } for (auto x : ans) { for (auto y : x) cout << y; cout << '\n'; } } 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...