QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#293102 | #7906. Almost Convex | Sy03 | AC ✓ | 496ms | 4160kb | C++20 | 16.2kb | 2023-12-28 21:44:54 | 2023-12-28 21:44:54 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ui = unsigned int;
using ull = unsigned long long;
using ll = long long;
#define endl '\n'
using pii = pair<int, int>;
using pll = pair<ll, ll>;
const int maxn = 2e5 + 10;
const int mod = 1000000007;
#define inl inline
#define fr(i, a, b) for (int i = a; i <= b; i++)
#define ford(i, a, b) for (int i = a; i >= b; i--)
#define forall(i, a) for (auto &i : a)
/**
____ ___ _____
/ ___| _ _ / _ \___ /
\___ \| | | | | | ||_ \
___) | |_| | |_| |__) |
|____/ \__, |\___/____/
|___/
*/
istream &operator>>(istream &in, vector<int> &v)
{
for (auto &i : v)
in >> i;
return in;
}
ostream &operator<<(ostream &out, vector<int> &v)
{
for (auto &i : v)
out << i << " ";
return out;
}
bool _output = 0;
#include <bits/stdc++.h>
using namespace std;
typedef double db;
const db EPS = 1e-9;
inline int sign(db a)
{
return a < -EPS ? -1 : a > EPS;
}
inline int cmp(db a, db b)
{
return sign(a - b);
}
struct P
{
db x, y;
P() {}
P(db _x, db _y) : x(_x), y(_y) {}
// 重构加减乘除
P operator+(P p) { return {x + p.x, y + p.y}; }
P operator-(P p) { return {x - p.x, y - p.y}; }
P operator*(db d) { return {x * d, y * d}; }
P operator/(db d) { return {x / d, y / d}; }
bool operator<(P p) const
{
int c = cmp(x, p.x);
if (c)
return c == -1;
return cmp(y, p.y) == -1;
}
bool operator==(P o) const { return cmp(x, o.x) == 0 && cmp(y, o.y) == 0; }
db dot(P p) { return x * p.x + y * p.y; } // 点积
db det(P p) { return x * p.y - y * p.x; } // 叉积
db distTo(P p) { return (*this - p).abs(); }
db alpha() { return atan2(y, x); }
void read() { cin >> x >> y; }
void write() { cout << "(" << x << "," << y << ")" << endl; }
db abs() { return sqrt(abs2()); }
db abs2() { return x * x + y * y; }
P rot90() { return P(-y, x); }
P unit() { return *this / abs(); }
int quad() const { return sign(y) == 1 || (sign(y) == 0 && sign(x) >= 0); }
P rot(db an)
{
return {x * cos(an) - y * sin(an), x * sin(an) + y * cos(an)};
}
};
#define cross(p1, p2, p3) \
((p2.x - p1.x) * (p3.y - p1.y) - (p3.x - p1.x) * (p2.y - p1.y))
#define crossOp(p1, p2, p3) sign(cross(p1, p2, p3))
// 直线 p1p2, q1q2 是否恰有一个交点
bool chkLL(P p1, P p2, P q1, P q2)
{
db a1 = cross(q1, q2, p1), a2 = -cross(q1, q2, p2);
return sign(a1 + a2) != 0;
}
// 求直线 p1p2, q1q2 的交点
P isLL(P p1, P p2, P q1, P q2)
{
db a1 = cross(q1, q2, p1), a2 = -cross(q1, q2, p2);
return (p1 * a2 + p2 * a1) / (a1 + a2);
}
// 判断区间 [l1, r1], [l2, r2] 是否相交
bool intersect(db l1, db r1, db l2, db r2)
{
if (l1 > r1)
swap(l1, r1);
if (l2 > r2)
swap(l2, r2);
return !(cmp(r1, l2) == -1 || cmp(r2, l1) == -1);
}
// 线段 p1p2, q1q2 相交
bool isSS(P p1, P p2, P q1, P q2)
{
return intersect(p1.x, p2.x, q1.x, q2.x) &&
intersect(p1.y, p2.y, q1.y, q2.y) &&
crossOp(p1, p2, q1) * crossOp(p1, p2, q2) <= 0 &&
crossOp(q1, q2, p1) * crossOp(q1, q2, p2) <= 0;
}
// 线段 p1p2, q1q2 严格相交
bool isSS_strict(P p1, P p2, P q1, P q2)
{
return crossOp(p1, p2, q1) * crossOp(p1, p2, q2) < 0 &&
crossOp(q1, q2, p1) * crossOp(q1, q2, p2) < 0;
}
// m 在 a 和 b 之间
bool isMiddle(db a, db m, db b)
{
/*if (a > b) swap(a, b);
return cmp(a, m) <= 0 && cmp(m, b) <= 0;*/
return sign(a - m) == 0 || sign(b - m) == 0 || (a < m != b < m);
}
bool isMiddle(P a, P m, P b)
{
return isMiddle(a.x, m.x, b.x) && isMiddle(a.y, m.y, b.y);
}
// 点 p 在线段 p1p2 上
bool onSeg(P p1, P p2, P q)
{
return crossOp(p1, p2, q) == 0 && isMiddle(p1, q, p2);
}
// q1q2 和 p1p2 的交点 在 p1p2 上?
// 点 p 严格在 p1p2 上
bool onSeg_strict(P p1, P p2, P q)
{
return crossOp(p1, p2, q) == 0 &&
sign((q - p1).dot(p1 - p2)) * sign((q - p2).dot(p1 - p2)) < 0;
}
// 求 q 到 直线p1p2 的投影(垂足) ⚠️ : p1 != p2
P proj(P p1, P p2, P q)
{
P dir = p2 - p1;
return p1 + dir * (dir.dot(q - p1) / dir.abs2());
}
// 求 q 以 直线p1p2 为轴的反射
P reflect(P p1, P p2, P q)
{
return proj(p1, p2, q) * 2 - q;
}
// 求 q 到 线段p1p2 的最小距离
db nearest(P p1, P p2, P q)
{
if (p1 == p2)
return p1.distTo(q);
P h = proj(p1, p2, q);
if (isMiddle(p1, h, p2))
return q.distTo(h);
return min(p1.distTo(q), p2.distTo(q));
}
// 求 线段p1p2 与 线段q1q2 的距离
db disSS(P p1, P p2, P q1, P q2)
{
if (isSS(p1, p2, q1, q2))
return 0;
return min(min(nearest(p1, p2, q1), nearest(p1, p2, q2)),
min(nearest(q1, q2, p1), nearest(q1, q2, p2)));
}
// 极角排序
// sort(p, p + n, [&](P a, P b)
// {
// int qa = a.quad(), qb = b.quad();
// if (qa != qb)
// return qa < qb;
// else
// return sign(a.det(b)) > 0; });
const db eps = 1e-8;
struct argcmp
{
bool operator()(P &a, P &b) const
{
const auto quad = [](const P &a)
{
if (a.y < -eps)
return 1;
if (a.y > eps)
return 4;
if (a.x < -eps)
return 5;
if (a.x > eps)
return 3;
return 2;
};
const int qa = quad(a), qb = quad(b);
if (qa != qb)
return qa < qb;
db t = a.det(b);
// if (abs(t)<=eps) return a*a<b*b-eps; // 不同长度的向量需要分开
return t > eps;
}
};
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, n) for (int i = a; i < n; i++)
typedef double db;
// 求多边形面积
db area(vector<P> ps)
{
db ret = 0;
rep(i, 0, ps.size()) ret += ps[i].det(ps[(i + 1) % ps.size()]);
return ret / 2;
}
// 点包含
int contain(vector<P> ps, P p)
{ // 2:inside,1:on_seg,0:outside
int n = ps.size(), ret = 0;
rep(i, 0, n)
{
P u = ps[i], v = ps[(i + 1) % n];
if (onSeg(u, v, p))
return 1;
if (cmp(u.y, v.y) <= 0)
swap(u, v);
if (cmp(p.y, u.y) > 0 || cmp(p.y, v.y) <= 0)
continue;
ret ^= crossOp(p, u, v) > 0;
}
return ret * 2;
}
// 严格凸包
vector<P> convexHull(vector<P> ps)
{
int n = ps.size();
if (n <= 1)
return ps;
sort(ps.begin(), ps.end());
vector<P> qs(n * 2);
int k = 0;
for (int i = 0; i < n; qs[k++] = ps[i++])
while (k > 1 && crossOp(qs[k - 2], qs[k - 1], ps[i]) <= 0)
--k;
for (int i = n - 2, t = k; i >= 0; qs[k++] = ps[i--])
while (k > t && crossOp(qs[k - 2], qs[k - 1], ps[i]) <= 0)
--k;
qs.resize(k - 1);
return qs;
}
// 不严格凸包
vector<P> convexHullNonStrict(vector<P> ps)
{
// caution: need to unique the Ps first
int n = ps.size();
if (n <= 1)
return ps;
sort(ps.begin(), ps.end());
vector<P> qs(n * 2);
int k = 0;
for (int i = 0; i < n; qs[k++] = ps[i++])
while (k > 1 && crossOp(qs[k - 2], qs[k - 1], ps[i]) < 0)
--k;
for (int i = n - 2, t = k; i >= 0; qs[k++] = ps[i--])
while (k > t && crossOp(qs[k - 2], qs[k - 1], ps[i]) < 0)
--k;
qs.resize(k - 1);
return qs;
}
// 旋转卡壳
db convexDiameter(vector<P> ps)
{
int n = ps.size();
if (n <= 1)
return 0;
int is = 0, js = 0;
rep(k, 1, n) is = ps[k] < ps[is] ? k : is, js = ps[js] < ps[k] ? k : js;
int i = is, j = js;
db ret = ps[i].distTo(ps[j]);
do
{
if ((ps[(i + 1) % n] - ps[i]).det(ps[(j + 1) % n] - ps[j]) >= 0)
(++j) %= n;
else
(++i) %= n;
ret = max(ret, ps[i].distTo(ps[j]));
} while (i != is || j != js);
return ret;
}
// 切多边形
vector<P> convexCut(const vector<P> &ps, P q1, P q2)
{
vector<P> qs;
int n = ps.size();
rep(i, 0, n)
{
P p1 = ps[i], p2 = ps[(i + 1) % n];
int d1 = crossOp(q1, q2, p1), d2 = crossOp(q1, q2, p2);
if (d1 >= 0)
qs.push_back(p1);
if (d1 * d2 < 0)
qs.push_back(isLL(p1, p2, q1, q2));
}
return qs;
}
#define rep(i, a, n) for (int i = a; i < n; i++)
const double PI = acos(-1.0);
// 判断两个圆的关系
int type(P o1, db r1, P o2, db r2)
{
db d = o1.distTo(o2);
if (cmp(d, r1 + r2) == 1)
return 4;
if (cmp(d, r1 + r2) == 0)
return 3;
if (cmp(d, abs(r1 - r2)) == 1)
return 2;
if (cmp(d, abs(r1 - r2)) == 0)
return 1;
return 0;
}
// 圆和线相交
vector<P> isCL(P o, db r, P p1, P p2)
{
if (cmp(abs((o - p1).det(p2 - p1) / p1.distTo(p2)), r) > 0)
return {};
db x = (p1 - o).dot(p2 - p1), y = (p2 - p1).abs2(),
d = x * x - y * ((p1 - o).abs2() - r * r);
d = max(d, (db)0.0);
P m = p1 - (p2 - p1) * (x / y), dr = (p2 - p1) * (sqrt(d) / y);
return {m - dr, m + dr}; // along dir: p1->p2
}
// 两个圆相交的交点
vector<P> isCC(P o1,
db r1,
P o2,
db r2)
{ // need to check whether two circles are the same
db d = o1.distTo(o2);
if (cmp(d, r1 + r2) == 1)
return {};
if (cmp(d, abs(r1 - r2)) == -1)
return {};
d = min(d, r1 + r2);
db y = (r1 * r1 + d * d - r2 * r2) / (2 * d), x = sqrt(r1 * r1 - y * y);
P dr = (o2 - o1).unit();
P q1 = o1 + dr * y, q2 = dr.rot90() * x;
return {q1 - q2, q1 + q2}; // along circle 1
}
// 求切线,默认求外公切线,求内公切线的话,r2改成负数,求点到圆的切线,r2改成0
// extanCC, intanCC : -r2, tanCP : r2 = 0
vector<pair<P, P>> tanCC(P o1, db r1, P o2, db r2)
{
P d = o2 - o1;
db dr = r1 - r2, d2 = d.abs2(), h2 = d2 - dr * dr;
if (sign(d2) == 0 || sign(h2) < 0)
return {};
h2 = max((db)0.0, h2);
vector<pair<P, P>> ret;
for (db sign : {-1, 1})
{
P v = (d * dr + d.rot90() * sqrt(h2) * sign) / d2;
ret.push_back({o1 + v * r1, o2 + v * r2});
}
if (sign(h2) == 0)
ret.pop_back();
return ret;
}
db rad(P p1, P p2)
{
return atan2l(p1.det(p2), p1.dot(p2));
}
// 圆和三角形的面积交
db areaCT(db r, P p1, P p2)
{
vector<P> is = isCL(P(0, 0), r, p1, p2);
if (is.empty())
return r * r * rad(p1, p2) / 2;
bool b1 = cmp(p1.abs2(), r * r) == 1, b2 = cmp(p2.abs2(), r * r) == 1;
if (b1 && b2)
{
P md = (is[0] + is[1]) / 2;
if (sign((p1 - md).dot(p2 - md)) <= 0)
return r * r * (rad(p1, is[0]) + rad(is[1], p2)) / 2 +
is[0].det(is[1]) / 2;
else
return r * r * rad(p1, p2) / 2;
}
if (b1)
return (r * r * rad(p1, is[0]) + is[0].det(p2)) / 2;
if (b2)
return (p1.det(is[1]) + r * r * rad(is[1], p2)) / 2;
return p1.det(p2) / 2;
}
// 内心
P inCenter(P A, P B, P C)
{
double a = (B - C).abs(), b = (C - A).abs(), c = (A - B).abs();
return (A * a + B * b + C * c) / (a + b + c);
}
// 外心
P circumCenter(P a, P b, P c)
{
P bb = b - a, cc = c - a;
double db = bb.abs2(), dc = cc.abs2(), d = 2 * bb.det(cc);
return a - P(bb.y * dc - cc.y * db, cc.x * db - bb.x * dc) / d;
}
// 垂心
P othroCenter(P a, P b, P c)
{
P ba = b - a, ca = c - a, bc = b - c;
double Y = ba.y * ca.y * bc.y, A = ca.x * ba.y - ba.x * ca.y,
x0 = (Y + ca.x * ba.y * b.x - ba.x * ca.y * c.x) / A,
y0 = -ba.x * (x0 - c.x) / ba.y + ca.y;
return {x0, y0};
}
// 最小圆覆盖,随机增量法
pair<P, db> min_circle(vector<P> ps)
{
random_device rd;
mt19937 rng(rd());
shuffle(ps.begin(), ps.end(), rng);
// random_shuffle(ps.begin(), ps.end());
int n = ps.size();
P o = ps[0];
db r = 0;
rep(i, 1, n) if (o.distTo(ps[i]) > r + EPS)
{
o = ps[i], r = 0;
rep(j, 0, i) if (o.distTo(ps[j]) > r + EPS)
{
o = (ps[i] + ps[j]) / 2;
r = o.distTo(ps[i]);
rep(k, 0, j) if (o.distTo(ps[k]) > r + EPS)
{
o = circumCenter(ps[i], ps[j], ps[k]);
r = o.distTo(ps[i]);
}
}
}
return {o, r};
}
db intergal(db x, db y, db r, db L, db R)
{
return r * r * (R - L) + x * r * (sinl(R) - sinl(L)) +
y * r * (-cosl(R) + cosl(L));
}
db calc_area_circle(P c, db r, db L, db R)
{
return intergal(c.x, c.y, r, L, R) / 2;
}
db norm(db x)
{
while (x < 0)
x += 2 * PI;
while (x > 2 * PI)
x -= 2 * PI;
return x;
}
// 圆面积并
// const int N = 10010;
// P cs[N];
// db rs[N];
// void work()
// {
// vector<int> cand = {};
// rep(i, 0, n)
// {
// bool ok = 1;
// rep(j, 0, n) if (i != j)
// {
// if (rs[j] > rs[i] + EPS &&
// rs[i] + cs[i].distTo(cs[j]) <= rs[j] + EPS)
// {
// ok = 0;
// break;
// }
// if (cs[i] == cs[j] && cmp(rs[i], rs[j]) == 0 && j < i)
// {
// ok = 0;
// break;
// }
// }
// if (ok)
// cand.push_back(i);
// }
// rep(i, 0, cand.size()) cs[i] = cs[cand[i]], rs[i] = rs[cand[i]];
// n = cand.size();
// db area = 0;
// // work
// rep(i, 0, n)
// {
// vector<pair<db, int>> ev = {{0, 0}, {2 * PI, 0}};
// int cur = 0;
// rep(j, 0, n) if (j != i)
// {
// auto ret = isCC(cs[i], rs[i], cs[j], rs[j]);
// if (!ret.empty())
// {
// db l = (ret[0] - cs[i]).alpha();
// db r = (ret[1] - cs[i]).alpha();
// l = norm(l);
// r = norm(r);
// ev.push_back({l, 1});
// ev.push_back({r, -1});
// if (l > r)
// ++cur;
// }
// }
// sort(ev.begin(), ev.end());
// rep(j, 0, ev.size() - 1)
// {
// cur += ev[j].second;
// if (cur == 0)
// {
// area += calc_area_circle(cs[i], rs[i], ev[j].fi, ev[j + 1].fi);
// }
// }
// }
// }
void solve()
{
int n;
cin >> n;
vector<P> ps;
fr(i, 1, n)
{
P p;
cin >> p.x >> p.y;
ps.push_back(p);
}
auto cv = convexHull(ps);
set<pii> on_convex;
for (auto now : cv)
{
on_convex.insert({now.x, now.y});
}
vector<P> inside;
for (int i = 0; i < n; i++)
{
if (contain(cv, ps[i]) == 2)
{
inside.push_back(ps[i]);
}
}
if (inside.size() == 0)
{
cout << "1" << endl;
return;
}
// cout << inside.size() << endl;
int ans = 0;
for (auto now : inside)
{
// cout << now.x << " " << now.y << " ";
vector<P> t;
for (int i = 0; i < n; i++)
{
if (ps[i] == now)
continue;
t.push_back(ps[i]);
}
sort(t.begin(), t.end(), [&](P A, P B)
{
auto a = A - now, b = B - now;
int qa = a.quad(), qb = b.quad();
if (qa != qb) return qa < qb;
else return sign(a.det(b)) > 0; });
int sz = t.size();
for (int i = 0; i < sz; i++)
{
bool t1 = on_convex.count({t[i % sz].x, t[i % sz].y});
bool t2 = on_convex.count({t[(i + 1) % sz].x, t[(i + 1) % sz].y});
if (t1 && t2)
{
ans++;
}
}
// cout << ans << endl;
}
cout << ans + 1 << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int _ = 1;
if (_output)
cin >> _;
while (_--)
solve();
return 0;
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3856kb
input:
7 1 4 4 0 2 3 3 1 3 5 0 0 2 4
output:
9
result:
ok 1 number(s): "9"
Test #2:
score: 0
Accepted
time: 0ms
memory: 4000kb
input:
5 4 0 0 0 2 1 3 3 3 1
output:
5
result:
ok 1 number(s): "5"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
3 0 0 3 0 0 3
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3764kb
input:
6 0 0 3 0 3 2 0 2 1 1 2 1
output:
7
result:
ok 1 number(s): "7"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3852kb
input:
4 0 0 0 3 3 0 3 3
output:
1
result:
ok 1 number(s): "1"
Test #6:
score: 0
Accepted
time: 456ms
memory: 3804kb
input:
2000 86166 617851 383354 -277127 844986 386868 -577988 453392 -341125 -386775 -543914 -210860 -429613 606701 -343534 893727 841399 339305 446761 -327040 -218558 -907983 787284 361823 950395 287044 -351577 -843823 -198755 138512 -306560 -483261 -487474 -857400 885637 -240518 -297576 603522 -748283 33...
output:
718
result:
ok 1 number(s): "718"
Test #7:
score: 0
Accepted
time: 460ms
memory: 3860kb
input:
2000 571314 -128802 -57762 485216 -713276 485201 -385009 -844644 371507 403789 338703 -272265 -913641 438001 -792118 -481524 709494 213762 -913577 432978 -397111 709021 840950 328210 -843628 452653 -20721 126607 -107804 -338102 930109 -89787 -949115 -76479 -862141 455623 991761 94852 -635475 625573 ...
output:
658
result:
ok 1 number(s): "658"
Test #8:
score: 0
Accepted
time: 452ms
memory: 3820kb
input:
2000 -510540 -289561 -602648 -189950 -403224 944455 -369582 -41334 358122 -598933 -817147 470207 -440180 -735160 -705634 61719 319062 897001 -905089 -755682 -408371 -520115 -423336 548115 -590242 835990 208155 883477 -202087 142035 -71545 411206 570690 -673204 -228451 -903435 -732876 -570271 -246755...
output:
309
result:
ok 1 number(s): "309"
Test #9:
score: 0
Accepted
time: 426ms
memory: 4052kb
input:
2000 -532115 566389 138405 49337 398814 -97324 116833 113216 381728 877609 222402 641022 109920 952381 -113880 395181 13780 -572931 -676608 605202 -74328 -503839 -207767 926500 -663270 -146303 197877 280349 275865 -663892 -630214 3286 973786 304855 -493735 841584 394901 -505975 757960 204724 -373328...
output:
239
result:
ok 1 number(s): "239"
Test #10:
score: 0
Accepted
time: 425ms
memory: 3936kb
input:
2000 512636 509804 -661126 -592269 755566 -721837 -878213 441853 -236050 -89069 -181220 155656 203391 691764 940154 260513 747075 373881 620423 840991 -409624 335472 270937 -710659 -751290 -673585 250341 -193243 -250535 618887 -739996 543936 -547741 -213681 -82920 -364319 -611672 737719 930798 46731...
output:
1025
result:
ok 1 number(s): "1025"
Test #11:
score: 0
Accepted
time: 429ms
memory: 3816kb
input:
2000 943353 817289 237151 899722 682851 -464873 854225 205354 834550 257948 -260874 298196 -224572 -269157 -667301 881130 -45920 -696359 -634337 792620 -408527 -947513 582880 172669 921645 839423 833813 721080 -836662 -287230 -55783 -408594 108996 -122012 365647 -789544 313812 833502 970009 -737736 ...
output:
218
result:
ok 1 number(s): "218"
Test #12:
score: 0
Accepted
time: 387ms
memory: 3800kb
input:
2000 619248 227987 -252490 -553032 148050 -479727 -333707 -591482 -40488 -503144 561909 255624 -402541 -798967 -245811 -610006 -146584 -517935 226433 -92580 -81939 -828480 72540 -845547 502613 220323 66708 -573015 601886 258752 406443 257854 232970 -671600 -37023 -683767 602339 456757 -440096 -71899...
output:
7
result:
ok 1 number(s): "7"
Test #13:
score: 0
Accepted
time: 390ms
memory: 3960kb
input:
2000 -602451 2956 85982 141739 -185932 -208897 -716095 58215 -468047 155612 -791626 -3105 75700 -484098 609608 -304849 689485 -106857 533177 -285261 -659400 -241162 -369302 165482 406663 265940 -353843 -788313 805885 -75440 -571955 -60471 351360 -81373 -510926 -59456 591713 179588 534794 -118 201630...
output:
66
result:
ok 1 number(s): "66"
Test #14:
score: 0
Accepted
time: 413ms
memory: 4040kb
input:
2000 41203 -675424 -158994 366628 -133859 -595680 435466 687630 687811 -35017 314337 133049 -384711 444777 54850 -760922 526166 282618 572292 94793 -324003 621393 -30308 242225 612969 -231837 -56628 -892609 -492077 58749 29597 -349591 198510 219502 380955 -59845 839171 -40068 88185 -820614 -572977 -...
output:
43
result:
ok 1 number(s): "43"
Test #15:
score: 0
Accepted
time: 429ms
memory: 3816kb
input:
2000 -814040 46114 -324077 -522697 388552 -604274 -252898 43028 -757069 141507 413462 -649779 -281915 -316285 -498931 -573214 -408766 670792 -271435 -393170 87187 731739 89312 -853584 -768680 -307261 -185324 234729 -70493 -354866 16452 164338 -650791 -518077 851196 -259322 -85395 -509349 241593 5074...
output:
129
result:
ok 1 number(s): "129"
Test #16:
score: 0
Accepted
time: 440ms
memory: 3868kb
input:
2000 23103 -796677 -148322 67634 -525131 -446626 2672 584671 -712789 -69579 -91150 -429393 -375635 -487235 -680553 -370975 793181 -383683 -234131 -462420 -734705 -171834 322671 -355011 760005 224249 700248 -352775 416862 -125857 -497951 717254 677084 -451876 -220123 616240 525973 -144881 -300828 553...
output:
1466
result:
ok 1 number(s): "1466"
Test #17:
score: 0
Accepted
time: 467ms
memory: 3820kb
input:
2000 -185174 470373 -772343 -70370 -182314 851727 661615 -250979 -581175 527646 332025 141502 -659052 -506788 -378459 -553180 11233 162287 469975 -572356 679074 217029 -137967 727723 581696 140544 452574 -319370 120895 129820 772655 -330960 122860 823902 -786221 147543 -206152 -373647 -212943 4820 6...
output:
2801
result:
ok 1 number(s): "2801"
Test #18:
score: 0
Accepted
time: 492ms
memory: 3856kb
input:
2000 -718158 695879 655921 595312 -509080 -860718 540612 244159 -83221 -865654 -460513 -542465 102321 -775593 328552 799263 -284269 -725108 152140 549502 -108610 465054 -97837 -449762 -772869 -171472 293831 -711723 508617 -157976 170737 323070 544222 385453 -633043 -233165 -620164 -459706 507218 338...
output:
14445
result:
ok 1 number(s): "14445"
Test #19:
score: 0
Accepted
time: 496ms
memory: 3832kb
input:
2000 -587991 -165467 -530325 -5525 -574943 180654 -496535 -748102 -436469 -160646 110285 237070 -822862 -141480 -177189 327799 -424868 331309 -999274 38095 -745710 192605 -234174 -804258 586432 -176239 -626756 499109 -562606 826724 890245 455480 -32262 -298900 550800 516690 -588632 -368654 405331 -3...
output:
64358
result:
ok 1 number(s): "64358"
Test #20:
score: 0
Accepted
time: 488ms
memory: 3868kb
input:
2000 441575 -414673 651578 -449237 287355 -489950 606811 -30288 -733692 679481 -652568 89883 -360110 616801 190405 -368787 -352383 935855 118240 73038 -374899 -927065 -22183 -491455 -146229 638417 998825 -48442 -374469 243261 988830 149043 -778607 -291542 -277026 -167975 372912 -405043 535321 425727...
output:
233885
result:
ok 1 number(s): "233885"
Test #21:
score: 0
Accepted
time: 430ms
memory: 3848kb
input:
2000 -369265 -366669 -225059 -65255 750236 -107534 -252341 967638 533029 -79205 -482639 504243 -164616 -477455 -219649 975578 222020 297565 -548636 -836060 595498 -345235 -971961 -235140 179392 983777 747498 664263 -458850 -513884 -456639 186799 508542 -359953 630300 5257 -294961 -599723 999627 2729...
output:
430546
result:
ok 1 number(s): "430546"
Test #22:
score: 0
Accepted
time: 400ms
memory: 3988kb
input:
2000 -586906 -809654 -279647 960102 -279925 501031 -76716 526333 -277891 -599253 171606 -289251 565124 -825005 -125381 -163097 -71257 -202933 999551 29949 286017 -698748 257733 358898 6047 18648 283230 -959051 221238 -975219 686818 32684 368089 -929790 -689242 449329 -547431 836850 612952 -790120 -9...
output:
484966
result:
ok 1 number(s): "484966"
Test #23:
score: 0
Accepted
time: 375ms
memory: 3916kb
input:
2000 -360385 -932803 6402 -568575 477942 -878390 361387 -497256 -383874 -126116 -838786 214745 157834 -987465 955879 293759 -91170 -521309 262250 964999 883045 -469287 350745 823160 999731 -23179 -791215 8792 208002 153508 -553609 549966 -345358 591962 -613852 198594 81698 996657 803702 98789 201163...
output:
513300
result:
ok 1 number(s): "513300"
Test #24:
score: 0
Accepted
time: 368ms
memory: 3872kb
input:
2000 -996201 87077 834777 -550587 -316381 948632 750921 -473436 -170208 -985408 -98642 17818 735787 -677212 80294 -996771 -420703 594219 995302 -96813 997685 68003 -680287 396657 -986559 163401 313494 442433 -774277 632845 809816 -586683 -569560 692991 956486 -291775 992620 -121264 998004 -63141 -64...
output:
528222
result:
ok 1 number(s): "528222"
Test #25:
score: 0
Accepted
time: 372ms
memory: 3868kb
input:
2000 -876642 481141 513009 -76454 48555 998820 -665181 11267 -681766 -551841 -724328 30683 -594565 -308913 799027 -601295 390878 658489 300660 953731 -227699 973731 621281 283696 871533 490336 -363638 931539 592572 805516 330089 201429 -282723 -959201 -351348 316419 -5935 -999982 -413615 -910451 -14...
output:
527976
result:
ok 1 number(s): "527976"
Test #26:
score: 0
Accepted
time: 363ms
memory: 4028kb
input:
2000 -496177 868221 -142749 -989758 -999462 -32767 -496370 452632 -50957 -998700 549450 25036 -389116 607514 164685 -287576 546553 837424 -356561 934271 250395 -662914 752586 452605 -803752 594963 -978350 206954 983866 178904 -712386 -247430 494205 -869345 777893 628396 -91446 995809 -373660 927565 ...
output:
536419
result:
ok 1 number(s): "536419"
Test #27:
score: 0
Accepted
time: 360ms
memory: 4132kb
input:
2000 -20062 470240 889867 456219 84686 996407 -54908 580599 428693 -903450 -150993 -781447 -437742 -134074 -245186 -299633 216878 730546 -588614 808414 -945245 326360 -72396 -11572 -663429 748238 -538386 842697 463983 400770 716299 697792 161751 -986831 931604 -363474 -466293 884630 163252 -116392 4...
output:
541774
result:
ok 1 number(s): "541774"
Test #28:
score: 0
Accepted
time: 354ms
memory: 4124kb
input:
2000 125380 -992108 876963 480556 -954331 -298750 -872744 488177 -667627 744495 527592 -849497 -41014 -455304 13780 890561 -637070 -474060 858293 513158 -422631 -408446 792248 610198 272933 -962032 768663 -639653 957724 -287686 -655707 -72182 774032 633145 44910 -998991 767034 -220288 32566 -999469 ...
output:
554369
result:
ok 1 number(s): "554369"
Test #29:
score: 0
Accepted
time: 344ms
memory: 3948kb
input:
2000 877194 480134 721871 -692027 -657316 -753614 -141802 690188 -984203 -177038 499512 866306 60213 331650 667197 -744880 790745 -612145 526658 70820 -975342 -220697 -818975 126696 -206901 13958 -217847 783500 -498782 460388 214283 -976771 124783 992183 -826617 562763 -869768 -493460 -360542 721516...
output:
556266
result:
ok 1 number(s): "556266"
Test #30:
score: 0
Accepted
time: 336ms
memory: 4008kb
input:
2000 -928276 -371891 693025 -720912 340453 -741801 -315399 948959 -999987 -5058 957766 -287546 -11785 -999930 -480620 876928 -591790 -806091 430900 -490816 232828 972517 709950 -704252 -784773 619782 -40706 -999171 972505 232879 57240 360935 837945 25369 -349605 -537128 -50451 -998726 357173 300683 ...
output:
578226
result:
ok 1 number(s): "578226"
Test #31:
score: 0
Accepted
time: 300ms
memory: 4112kb
input:
2000 588463 808523 -653251 -757141 -216959 -976180 620816 -783955 -917704 397264 642866 765978 -965972 -258645 -662131 -749387 919793 -392403 81500 -385642 -860281 -509819 -976258 216610 -881856 -471517 781371 -274463 -769776 638313 996471 -83936 -149837 -988710 88728 -996055 621852 -125590 193779 4...
output:
599788
result:
ok 1 number(s): "599788"
Test #32:
score: 0
Accepted
time: 293ms
memory: 3936kb
input:
2000 -713963 -700183 149576 -48137 -904609 -426240 603724 -34474 -350076 178901 -692350 211723 -777299 -629130 -996510 -83463 343004 -939333 696533 554432 -288734 -640484 798029 602618 -327795 -944748 523003 852330 -49570 998770 263409 254892 -314451 619311 -368911 444305 -289455 -406382 -63806 -648...
output:
607941
result:
ok 1 number(s): "607941"
Test #33:
score: 0
Accepted
time: 287ms
memory: 3940kb
input:
2000 -979883 199570 812775 582577 -257939 966161 -874515 -484998 293436 -242001 749548 -288423 -671752 740775 -12769 999918 295251 955419 175054 -13528 -334691 -942327 539352 -842079 705797 -49973 348168 771901 859906 510451 121051 -572684 909626 -415426 -255421 -545286 962040 272906 -813562 581477 ...
output:
605021
result:
ok 1 number(s): "605021"
Test #34:
score: 0
Accepted
time: 278ms
memory: 4044kb
input:
2000 748836 662754 853522 521056 501246 608578 -266167 963926 347098 937828 996632 -82002 300258 -953857 570683 -821169 -399685 -531914 -52991 -536271 -268825 -738298 -440252 449420 936398 350939 -183686 982984 -792809 -609469 -36070 -98167 -769325 638857 957390 288796 -272995 -796868 434336 -294938...
output:
609148
result:
ok 1 number(s): "609148"
Test #35:
score: 0
Accepted
time: 270ms
memory: 3952kb
input:
2000 -75848 997119 -878795 -477199 718319 -695713 -750620 -660733 791233 -261340 734828 678253 -298982 223462 -243124 618205 333026 -942917 -431834 -311408 102455 -779863 839939 542679 -888198 459459 -6972 999975 -989074 147415 619268 -785179 913472 -406900 857133 515094 -490437 715504 187406 842078...
output:
612907
result:
ok 1 number(s): "612907"
Test #36:
score: 0
Accepted
time: 265ms
memory: 4028kb
input:
2000 710449 252021 -605745 -795658 965777 259370 528796 -506543 7488 -999971 130196 134654 205176 -978725 360847 -549034 940307 340325 -878187 -478317 195786 -980646 -965779 -259362 -40526 404237 926277 -376843 659148 752012 799019 -601305 609935 184334 400162 64645 123163 -992386 440739 80681 61275...
output:
613033
result:
ok 1 number(s): "613033"
Test #37:
score: 0
Accepted
time: 266ms
memory: 3948kb
input:
2000 -280012 -148903 382702 395900 551170 834392 138094 -142893 747764 -321810 814783 -579764 855100 -518462 518036 855358 -308932 768160 -746881 -664957 -550707 -834698 -203567 979060 -94882 211708 954151 299324 995262 -97226 995211 97743 -361441 932394 -879179 -476490 492429 -870352 222424 -974949...
output:
613525
result:
ok 1 number(s): "613525"
Test #38:
score: 0
Accepted
time: 256ms
memory: 3968kb
input:
2000 -31467 999504 -691705 722179 330770 -943711 -868142 496314 534209 -845352 -948997 315285 708054 706157 50035 -880465 -926659 375902 883484 -468460 -569126 -321856 -203339 709769 -569574 -821939 -753190 -657801 997229 -74388 -559117 829088 797882 -602812 -145490 822289 -951880 306469 648629 -418...
output:
609202
result:
ok 1 number(s): "609202"
Test #39:
score: 0
Accepted
time: 254ms
memory: 3908kb
input:
2000 -33027 -231537 645986 -17185 894873 -446319 369601 -929190 -858847 512231 759587 -650405 821506 -570199 64855 -997894 770842 637025 532744 -331176 148586 -77740 -903364 -428872 -999964 -8474 -967232 253890 4771 -999988 -238462 -243104 -936126 351663 987061 160340 508004 131675 -413865 910337 18...
output:
610683
result:
ok 1 number(s): "610683"
Test #40:
score: 0
Accepted
time: 248ms
memory: 3976kb
input:
2000 315983 611022 -710308 -71198 -574424 -609685 286803 957989 -365263 930904 605616 -39979 261643 965164 -34821 -681407 971328 237742 -428673 903459 -348540 -413287 -716611 446376 -389197 -921154 -214771 -976664 469821 -882761 -288792 -516000 451431 892305 665222 46114 -712000 702178 -11820 237318...
output:
606866
result:
ok 1 number(s): "606866"
Test #41:
score: 0
Accepted
time: 235ms
memory: 3968kb
input:
2000 827570 -561361 106486 -994314 531932 -846786 85020 -821614 -861275 508137 -944596 328233 -654160 -756355 -599581 330073 -953317 -301970 -337499 541540 867483 497465 674219 -738530 742712 438360 -431377 463380 -976458 -215705 -920911 389771 -603054 797699 -651789 758400 993338 115232 -653951 756...
output:
605654
result:
ok 1 number(s): "605654"
Test #42:
score: 0
Accepted
time: 232ms
memory: 4156kb
input:
2000 660227 -171320 -66161 -85351 683277 -730158 980572 196158 395353 118603 97015 448847 428573 -903506 927991 372602 615713 -506850 -694999 719010 411175 911556 463884 885895 159594 -724246 8242 747837 605323 -795979 878479 -50570 -395291 918555 476675 -879079 593695 804689 -941633 336639 -875114 ...
output:
607199
result:
ok 1 number(s): "607199"
Test #43:
score: 0
Accepted
time: 226ms
memory: 3908kb
input:
2000 -404720 641654 376493 -278480 678653 734458 767939 -640522 -419247 -907872 -664244 69783 627003 -779016 -990939 -134306 346792 544624 136558 -725588 -595202 803575 -234031 -301953 -299941 -953957 -866081 499902 901591 -432588 200283 979738 -699910 714230 812341 -583182 357149 -381610 -957517 28...
output:
603919
result:
ok 1 number(s): "603919"
Test #44:
score: 0
Accepted
time: 228ms
memory: 3980kb
input:
2000 -599904 800071 -887152 -461476 703155 -711035 653695 756757 -230256 -973129 987562 157229 -610508 173456 -405774 110423 859552 -511046 -901289 433216 913048 407850 640724 -767771 999070 43110 209538 -620478 888118 459614 839191 543836 -676657 469821 525241 850953 -563829 -825890 -688034 -725678...
output:
598805
result:
ok 1 number(s): "598805"
Test #45:
score: 0
Accepted
time: 222ms
memory: 3976kb
input:
2000 956636 291284 -998398 -56572 -877970 -478715 -907198 -420702 512527 858670 -435307 900281 -445471 895295 247912 364785 -348233 -937407 -901447 -432888 -571179 820825 392021 -919956 574003 115097 -265057 -355995 912755 408506 -375400 926862 -993241 116070 695920 -718118 -284145 -958781 -472992 8...
output:
598251
result:
ok 1 number(s): "598251"
Test #46:
score: 0
Accepted
time: 210ms
memory: 4068kb
input:
2000 -764451 644681 531916 -198765 281641 -959519 -815218 -579153 -974347 225046 -949358 314195 28285 744344 69688 -997568 -775844 630924 973439 228945 621650 783294 -628873 -777507 29532 390971 778370 -93337 923334 -383997 -648844 -760921 -37277 -471652 975210 221278 535838 -634598 -843132 537705 1...
output:
588592
result:
ok 1 number(s): "588592"
Test #47:
score: 0
Accepted
time: 198ms
memory: 3976kb
input:
2000 113634 993522 296600 -955001 -983491 180954 969414 -245430 346546 -938032 -222652 -54964 -61422 998111 -183247 -983066 -700935 713224 -729527 683951 785401 -618986 734347 267059 -898291 439399 394552 918873 -999754 -22148 -999082 -42823 -261334 -965248 858996 -511981 388846 528044 398694 917083...
output:
580267
result:
ok 1 number(s): "580267"
Test #48:
score: 0
Accepted
time: 195ms
memory: 3964kb
input:
2000 -999844 17617 825619 -564226 -998793 49111 -342117 -939657 -964696 263365 348225 -937410 -534589 845111 972446 -233128 996396 84812 226108 974102 819673 -572831 787248 -616635 584981 -811046 -91377 -845586 399 -999999 -420017 -907516 -990854 134931 -8366 -653975 -971086 -238729 -910547 413403 7...
output:
574822
result:
ok 1 number(s): "574822"
Test #49:
score: 0
Accepted
time: 185ms
memory: 4128kb
input:
2000 -642241 766502 985145 -171722 960869 -277002 -770518 637417 -997009 -77276 389040 -921220 -625503 -780221 785285 619134 -869488 -493952 399502 -269138 605487 795854 -979953 -199227 -141150 -989988 -59731 -998214 -372142 -928175 430982 -902360 377383 926057 -253882 781247 -610587 -791948 -15523 ...
output:
569661
result:
ok 1 number(s): "569661"
Test #50:
score: 0
Accepted
time: 84ms
memory: 3920kb
input:
2000 -628838 -357590 978524 206130 -759844 650104 325497 945542 743026 669261 -626067 779768 809046 587744 785675 -618639 999954 9576 -917782 397082 594121 804375 479925 174875 362584 -392818 471020 -882122 -958352 -285587 203295 -979117 -101902 -994794 -307252 -951628 -522875 -852408 -999478 -32304...
output:
324930
result:
ok 1 number(s): "324930"
Test #51:
score: 0
Accepted
time: 47ms
memory: 4160kb
input:
2000 973483 228755 -923152 -384434 -974475 224492 -951197 308583 -301050 -953608 623065 782169 -4460 -999990 -347338 937739 -999141 41423 328894 -944366 -695142 -718871 840009 -542572 -226507 974009 472259 -881459 903505 428576 -559822 -828612 642699 766118 548513 -836141 764272 644893 178154 984002...
output:
180726
result:
ok 1 number(s): "180726"
Test #52:
score: 0
Accepted
time: 28ms
memory: 3928kb
input:
2000 -784353 -620314 995900 90455 -116566 -993182 881042 473036 177991 -984032 -999969 7783 655203 755452 -779179 626800 -181243 -983438 274776 -961507 609151 -793054 -1362 -843519 -566798 -823856 -530993 -847375 -951795 306733 62564 -998040 -959361 282180 -964809 -262948 185709 982604 -913941 40584...
output:
95123
result:
ok 1 number(s): "95123"
Test #53:
score: 0
Accepted
time: 17ms
memory: 3984kb
input:
2000 -378825 -925468 260691 -965422 854263 519839 -132682 -991158 -992506 122194 159239 987240 -986433 164163 -821638 -570008 936600 350399 -542405 840116 -116212 -993224 214672 976686 493136 -869952 -970476 241194 -744228 667925 -942833 333263 -884817 -465937 -941813 336134 714086 -700057 -931887 -...
output:
39222
result:
ok 1 number(s): "39222"
Test #54:
score: 0
Accepted
time: 13ms
memory: 3916kb
input:
2000 -982363 -186982 -654678 -755907 -468244 -883598 -999061 43307 -487654 873036 -996826 79600 -712944 -701220 -878254 -478193 -803280 595601 832745 -553656 -997294 73507 -969828 243790 449635 -893212 -180210 983627 582389 -812909 509250 860618 -845162 534508 -949329 314282 -976802 -214139 -414704 ...
output:
19811
result:
ok 1 number(s): "19811"
Test #55:
score: 0
Accepted
time: 10ms
memory: 4136kb
input:
2000 -944717 -327884 24164 -999707 988832 149033 545249 838273 54412 998518 996706 -81087 -632826 774293 971372 237560 -588936 -808179 -721351 -692569 909375 -415975 947390 320078 490265 -871573 770999 -636835 -877832 478968 -364048 -931380 995651 -93159 177569 -984108 945090 -326808 -107026 -994256...
output:
1
result:
ok 1 number(s): "1"
Extra Test:
score: 0
Extra Test Passed