#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 time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Incorrect |
4 ms |
384 KB |
in the table A+B is not equal to 2 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
7 ms |
384 KB |
in the table A+B is not equal to 2 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Incorrect |
4 ms |
384 KB |
in the table A+B is not equal to 2 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
474 ms |
1404 KB |
in the table A+B is not equal to 116 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
828 ms |
1400 KB |
Output is correct |
2 |
Execution timed out |
2076 ms |
508 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
Output is correct |
2 |
Incorrect |
4 ms |
384 KB |
in the table A+B is not equal to 2 |