This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 zz = max(0LL, mn - m + md);
// w*ansc>=zz*i
// w>=zz*i/ansc
int w = (zz * i + md - 1) / md;
if (n - w >= q) 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 = mn;
for (int j = m - 1; zz > 0 && j >= ansc; j--) {
ans[i][j] = '+';
zz--;
}
while (zz--) {
ans[i][now] = '+';
now++;
now %= ansc;
}
}
for (auto x : ans) {
for (auto y : x) cout << y;
cout << '\n';
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |