QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#307381 | #7906. Almost Convex | maspy | AC ✓ | 101ms | 4356kb | C++20 | 21.2kb | 2024-01-18 14:52:44 | 2024-01-18 14:52:45 |
Judging History
answer
#line 1 "library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using u32 = unsigned int;
using u64 = unsigned long long;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;
template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'000'000'000;
template <>
constexpr ll infty<ll> = ll(infty<int>) * infty<int> * 2;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * infty<ll>;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;
using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;
#define vv(type, name, h, ...) \
vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...) \
vector<vector<vector<type>>> name( \
h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...) \
vector<vector<vector<vector<type>>>> name( \
a, vector<vector<vector<type>>>( \
b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))
// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)
#define FOR_subset(t, s) \
for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if
#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
#define stoi stoll
int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
int popcnt_mod_2(int x) { return __builtin_parity(x); }
int popcnt_mod_2(u32 x) { return __builtin_parity(x); }
int popcnt_mod_2(ll x) { return __builtin_parityll(x); }
int popcnt_mod_2(u64 x) { return __builtin_parityll(x); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
template <typename T>
T floor(T a, T b) {
return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
T q = floor(x, y);
return {q, x - q * y};
}
template <typename T, typename U>
T SUM(const vector<U> &A) {
T sm = 0;
for (auto &&a: A) sm += a;
return sm;
}
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) \
sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()
template <typename T>
T POP(deque<T> &que) {
T a = que.front();
que.pop_front();
return a;
}
template <typename T>
T POP(pq<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(pqg<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(vc<T> &que) {
T a = que.back();
que.pop_back();
return a;
}
template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
if (check_ok) assert(check(ok));
while (abs(ok - ng) > 1) {
auto x = (ng + ok) / 2;
(check(x) ? ok : ng) = x;
}
return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
FOR(iter) {
double x = (ok + ng) / 2;
(check(x) ? ok : ng) = x;
}
return (ok + ng) / 2;
}
template <class T, class S>
inline bool chmax(T &a, const S &b) {
return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
return (a > b ? a = b, 1 : 0);
}
// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
vc<int> A(S.size());
FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
return A;
}
template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
int N = A.size();
vector<T> B(N + 1);
FOR(i, N) { B[i + 1] = B[i] + A[i]; }
if (off == 0) B.erase(B.begin());
return B;
}
// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
vector<int> ids(len(A));
iota(all(ids), 0);
sort(all(ids),
[&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
return ids;
}
// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
vc<T> B(len(I));
FOR(i, len(I)) B[i] = A[I[i]];
return B;
}
#endif
#line 1 "library/other/io.hpp"
#define FASTIO
#include <unistd.h>
// https://judge.yosupo.jp/submission/21623
namespace fastio {
static constexpr uint32_t SZ = 1 << 17;
char ibuf[SZ];
char obuf[SZ];
char out[100];
// pointer of ibuf, obuf
uint32_t pil = 0, pir = 0, por = 0;
struct Pre {
char num[10000][4];
constexpr Pre() : num() {
for (int i = 0; i < 10000; i++) {
int n = i;
for (int j = 3; j >= 0; j--) {
num[i][j] = n % 10 | '0';
n /= 10;
}
}
}
} constexpr pre;
inline void load() {
memcpy(ibuf, ibuf + pil, pir - pil);
pir = pir - pil + fread(ibuf + pir - pil, 1, SZ - pir + pil, stdin);
pil = 0;
if (pir < SZ) ibuf[pir++] = '\n';
}
inline void flush() {
fwrite(obuf, 1, por, stdout);
por = 0;
}
void rd(char &c) {
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
}
void rd(string &x) {
x.clear();
char c;
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
do {
x += c;
if (pil == pir) load();
c = ibuf[pil++];
} while (!isspace(c));
}
template <typename T>
void rd_real(T &x) {
string s;
rd(s);
x = stod(s);
}
template <typename T>
void rd_integer(T &x) {
if (pil + 100 > pir) load();
char c;
do
c = ibuf[pil++];
while (c < '-');
bool minus = 0;
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (c == '-') { minus = 1, c = ibuf[pil++]; }
}
x = 0;
while ('0' <= c) { x = x * 10 + (c & 15), c = ibuf[pil++]; }
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (minus) x = -x;
}
}
void rd(int &x) { rd_integer(x); }
void rd(ll &x) { rd_integer(x); }
void rd(i128 &x) { rd_integer(x); }
void rd(u32 &x) { rd_integer(x); }
void rd(u64 &x) { rd_integer(x); }
void rd(u128 &x) { rd_integer(x); }
void rd(double &x) { rd_real(x); }
void rd(long double &x) { rd_real(x); }
void rd(f128 &x) { rd_real(x); }
template <class T, class U>
void rd(pair<T, U> &p) {
return rd(p.first), rd(p.second);
}
template <size_t N = 0, typename T>
void rd_tuple(T &t) {
if constexpr (N < std::tuple_size<T>::value) {
auto &x = std::get<N>(t);
rd(x);
rd_tuple<N + 1>(t);
}
}
template <class... T>
void rd(tuple<T...> &tpl) {
rd_tuple(tpl);
}
template <size_t N = 0, typename T>
void rd(array<T, N> &x) {
for (auto &d: x) rd(d);
}
template <class T>
void rd(vc<T> &x) {
for (auto &d: x) rd(d);
}
void read() {}
template <class H, class... T>
void read(H &h, T &... t) {
rd(h), read(t...);
}
void wt(const char c) {
if (por == SZ) flush();
obuf[por++] = c;
}
void wt(const string s) {
for (char c: s) wt(c);
}
void wt(const char *s) {
size_t len = strlen(s);
for (size_t i = 0; i < len; i++) wt(s[i]);
}
template <typename T>
void wt_integer(T x) {
if (por > SZ - 100) flush();
if (x < 0) { obuf[por++] = '-', x = -x; }
int outi;
for (outi = 96; x >= 10000; outi -= 4) {
memcpy(out + outi, pre.num[x % 10000], 4);
x /= 10000;
}
if (x >= 1000) {
memcpy(obuf + por, pre.num[x], 4);
por += 4;
} else if (x >= 100) {
memcpy(obuf + por, pre.num[x] + 1, 3);
por += 3;
} else if (x >= 10) {
int q = (x * 103) >> 10;
obuf[por] = q | '0';
obuf[por + 1] = (x - q * 10) | '0';
por += 2;
} else
obuf[por++] = x | '0';
memcpy(obuf + por, out + outi + 4, 96 - outi);
por += 96 - outi;
}
template <typename T>
void wt_real(T x) {
ostringstream oss;
oss << fixed << setprecision(15) << double(x);
string s = oss.str();
wt(s);
}
void wt(int x) { wt_integer(x); }
void wt(ll x) { wt_integer(x); }
void wt(i128 x) { wt_integer(x); }
void wt(u32 x) { wt_integer(x); }
void wt(u64 x) { wt_integer(x); }
void wt(u128 x) { wt_integer(x); }
void wt(double x) { wt_real(x); }
void wt(long double x) { wt_real(x); }
void wt(f128 x) { wt_real(x); }
template <class T, class U>
void wt(const pair<T, U> val) {
wt(val.first);
wt(' ');
wt(val.second);
}
template <size_t N = 0, typename T>
void wt_tuple(const T t) {
if constexpr (N < std::tuple_size<T>::value) {
if constexpr (N > 0) { wt(' '); }
const auto x = std::get<N>(t);
wt(x);
wt_tuple<N + 1>(t);
}
}
template <class... T>
void wt(tuple<T...> tpl) {
wt_tuple(tpl);
}
template <class T, size_t S>
void wt(const array<T, S> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
template <class T>
void wt(const vector<T> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
void print() { wt('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
wt(head);
if (sizeof...(Tail)) wt(' ');
print(forward<Tail>(tail)...);
}
// gcc expansion. called automaticall after main.
void __attribute__((destructor)) _d() { flush(); }
} // namespace fastio
using fastio::read;
using fastio::print;
using fastio::flush;
#define INT(...) \
int __VA_ARGS__; \
read(__VA_ARGS__)
#define LL(...) \
ll __VA_ARGS__; \
read(__VA_ARGS__)
#define U32(...) \
u32 __VA_ARGS__; \
read(__VA_ARGS__)
#define U64(...) \
u64 __VA_ARGS__; \
read(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
read(__VA_ARGS__)
#define CHAR(...) \
char __VA_ARGS__; \
read(__VA_ARGS__)
#define DBL(...) \
double __VA_ARGS__; \
read(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
read(name)
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
read(name)
void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 3 "main.cpp"
#line 2 "library/geo/base.hpp"
template <typename T>
struct Point {
T x, y;
Point() : x(0), y(0) {}
template <typename A, typename B>
Point(A x, B y) : x(x), y(y) {}
template <typename A, typename B>
Point(pair<A, B> p) : x(p.fi), y(p.se) {}
Point operator+(Point p) const { return {x + p.x, y + p.y}; }
Point operator-(Point p) const { return {x - p.x, y - p.y}; }
bool operator==(Point p) const { return x == p.x && y == p.y; }
bool operator!=(Point p) const { return x != p.x || y != p.y; }
Point operator-() const { return {-x, -y}; }
Point operator*(T t) const { return {x * t, y * t}; }
Point operator/(T t) const { return {x / t, y / t}; }
bool operator<(Point p) const {
if (x != p.x) return x < p.x;
return y < p.y;
}
T dot(Point other) { return x * other.x + y * other.y; }
T det(Point other) { return x * other.y - y * other.x; }
double norm() { return sqrtl(x * x + y * y); }
double angle() { return atan2(y, x); }
Point rotate(double theta) {
static_assert(!is_integral<T>::value);
double c = cos(theta), s = sin(theta);
return Point{c * x - s * y, s * x + c * y};
}
};
#ifdef FASTIO
template <typename T>
void rd(Point<T>& p) {
fastio::rd(p.x), fastio::rd(p.y);
}
template <typename T>
void wt(Point<T>& p) {
fastio::wt(p.x);
fastio::wt(' ');
fastio::wt(p.y);
}
#endif
// A -> B -> C と進むときに、左に曲がるならば +1、右に曲がるならば -1
template <typename T>
int ccw(Point<T> A, Point<T> B, Point<T> C) {
T x = (B - A).det(C - A);
if (x > 0) return 1;
if (x < 0) return -1;
return 0;
}
template <typename REAL, typename T>
REAL dist(Point<T> A, Point<T> B) {
A = A - B;
T p = A.dot(A);
return sqrt(REAL(p));
}
// ax+by+c
template <typename T>
struct Line {
T a, b, c;
Line(T a, T b, T c) : a(a), b(b), c(c) {}
Line(Point<T> A, Point<T> B) {
a = A.y - B.y, b = B.x - A.x, c = A.x * B.y - A.y * B.x;
}
Line(T x1, T y1, T x2, T y2) : Line(Point<T>(x1, y1), Point<T>(x2, y2)) {}
template <typename U>
U eval(Point<U> P) {
return a * P.x + b * P.y + c;
}
template <typename U>
T eval(U x, U y) {
return a * x + b * y + c;
}
// 同じ直線が同じ a,b,c で表現されるようにする
void normalize() {
static_assert(is_same_v<T, int> || is_same_v<T, long long>);
T g = gcd(gcd(abs(a), abs(b)), abs(c));
a /= g, b /= g, c /= g;
if (b < 0) { a = -a, b = -b, c = -c; }
if (b == 0 && a < 0) { a = -a, b = -b, c = -c; }
}
bool is_parallel(Line other) { return a * other.b - b * other.a == 0; }
bool is_orthogonal(Line other) { return a * other.a + b * other.b == 0; }
};
template <typename T>
struct Segment {
Point<T> A, B;
Segment(Point<T> A, Point<T> B) : A(A), B(B) {}
Segment(T x1, T y1, T x2, T y2)
: Segment(Point<T>(x1, y1), Point<T>(x2, y2)) {}
bool contain(Point<T> C) {
static_assert(is_integral<T>::value);
T det = (C - A).det(B - A);
if (det != 0) return 0;
return (C - A).dot(B - A) >= 0 && (C - B).dot(A - B) >= 0;
}
Line<T> to_Line() { return Line(A, B); }
};
template <typename REAL>
struct Circle {
Point<REAL> O;
REAL r;
Circle(Point<REAL> O, REAL r) : O(O), r(r) {}
Circle(REAL x, REAL y, REAL r) : O(x, y), r(r) {}
template <typename T>
bool contain(Point<T> p) {
REAL dx = p.x - O.x, dy = p.y - O.y;
return dx * dx + dy * dy <= r * r;
}
};
template <typename T>
struct Polygon {
vc<Point<T>> points;
T a;
template <typename A, typename B>
Polygon(vc<pair<A, B>> pairs) {
for (auto&& [a, b]: pairs) points.eb(Point<T>(a, b));
build();
}
Polygon(vc<Point<T>> points) : points(points) { build(); }
int size() { return len(points); }
template <typename REAL>
REAL area() {
return a * 0.5;
}
template <enable_if_t<is_integral<T>::value, int> = 0>
T area_2() {
return a;
}
bool is_convex() {
FOR(j, len(points)) {
int i = (j == 0 ? len(points) - 1 : j - 1);
int k = (j == len(points) - 1 ? 0 : j + 1);
if ((points[j] - points[i]).det(points[k] - points[j]) < 0) return false;
}
return true;
}
private:
void build() {
a = 0;
FOR(i, len(points)) {
int j = (i + 1 == len(points) ? 0 : i + 1);
a += points[i].det(points[j]);
}
if (a < 0) {
a = -a;
reverse(all(points));
}
}
};
#line 2 "library/geo/convex_hull.hpp"
template <typename T>
vector<int> ConvexHull(vector<pair<T, T>>& XY, string mode = "full",
bool inclusive = false, bool sorted = false) {
assert(mode == "full" || mode == "lower" || mode == "upper");
ll N = XY.size();
if (N == 1) return {0};
if (N == 2) return {0, 1};
vc<int> I = argsort(XY);
auto check = [&](ll i, ll j, ll k) -> bool {
auto xi = XY[i].fi, yi = XY[i].se;
auto xj = XY[j].fi, yj = XY[j].se;
auto xk = XY[k].fi, yk = XY[k].se;
auto dx1 = xj - xi, dy1 = yj - yi;
auto dx2 = xk - xj, dy2 = yk - yj;
T det = dx1 * dy2 - dy1 * dx2;
return (inclusive ? det >= 0 : det > 0);
};
auto calc = [&]() {
vector<int> P;
for (auto&& k: I) {
while (P.size() > 1) {
auto i = P[P.size() - 2];
auto j = P[P.size() - 1];
if (check(i, j, k)) break;
P.pop_back();
}
P.eb(k);
}
return P;
};
vc<int> P;
if (mode == "full" || mode == "lower") {
vc<int> Q = calc();
P.insert(P.end(), all(Q));
}
if (mode == "full" || mode == "upper") {
if (!P.empty()) P.pop_back();
reverse(all(I));
vc<int> Q = calc();
P.insert(P.end(), all(Q));
}
if (mode == "upper") reverse(all(P));
if (len(P) >= 2 && P[0] == P.back()) P.pop_back();
return P;
}
template <typename T>
vector<int> ConvexHull(vector<Point<T>>& XY, string mode = "full",
bool inclusive = false, bool sorted = false) {
assert(mode == "full" || mode == "lower" || mode == "upper");
ll N = XY.size();
if (N == 1) return {0};
if (N == 2) return {0, 1};
vc<int> I = argsort(XY);
auto check = [&](ll i, ll j, ll k) -> bool {
auto xi = XY[i].x, yi = XY[i].y;
auto xj = XY[j].x, yj = XY[j].y;
auto xk = XY[k].x, yk = XY[k].y;
auto dx1 = xj - xi, dy1 = yj - yi;
auto dx2 = xk - xj, dy2 = yk - yj;
T det = dx1 * dy2 - dy1 * dx2;
return (inclusive ? det >= 0 : det > 0);
};
auto calc = [&]() {
vector<int> P;
for (auto&& k: I) {
while (P.size() > 1) {
auto i = P[P.size() - 2];
auto j = P[P.size() - 1];
if (check(i, j, k)) break;
P.pop_back();
}
P.eb(k);
}
return P;
};
vc<int> P;
if (mode == "full" || mode == "lower") {
vc<int> Q = calc();
P.insert(P.end(), all(Q));
}
if (mode == "full" || mode == "upper") {
if (!P.empty()) P.pop_back();
reverse(all(I));
vc<int> Q = calc();
P.insert(P.end(), all(Q));
}
if (mode == "upper") reverse(all(P));
if (len(P) >= 2 && P[0] == P.back()) P.pop_back();
return P;
}
#line 2 "library/geo/angle_sort.hpp"
#line 4 "library/geo/angle_sort.hpp"
// 偏角ソートに対する argsort
template <typename T>
vector<int> angle_sort(vector<Point<T>>& P) {
vector<int> lower, origin, upper;
const Point<T> O = {0, 0};
FOR(i, len(P)) {
if (P[i] == O) origin.eb(i);
elif ((P[i].y < 0) || (P[i].y == 0 && P[i].x > 0)) lower.eb(i);
else upper.eb(i);
}
sort(all(lower), [&](auto& i, auto& j) { return P[i].det(P[j]) > 0; });
sort(all(upper), [&](auto& i, auto& j) { return P[i].det(P[j]) > 0; });
auto& I = lower;
I.insert(I.end(), all(origin));
I.insert(I.end(), all(upper));
return I;
}
// 偏角ソートに対する argsort
template <typename T>
vector<int> angle_sort(vector<pair<T, T>>& P) {
vc<Point<T>> tmp(len(P));
FOR(i, len(P)) tmp[i] = Point<T>(P[i]);
return angle_sort<T>(tmp);
}
#line 6 "main.cpp"
using P = Point<ll>;
using Re = double;
const Re PI = acos(-1);
void solve() {
LL(N);
VEC(P, point, N);
auto I = ConvexHull(point);
vc<int> used(N);
for (auto& i: I) used[i] = 1;
vc<P> poly = rearrange(point, I);
vc<P> rest;
FOR(i, N) if (!used[i]) rest.eb(point[i]);
ll ANS = 0;
int n = len(rest);
vc<Re> X(n), Y(n);
FOR(k, len(poly)) {
P A = poly[k];
P B = poly[(k + 1) % len(poly)];
FOR(i, n) {
X[i] = (rest[i] - A).angle() - (B - A).angle();
Y[i] = (A - B).angle() - (rest[i] - B).angle();
if (X[i] < 0) X[i] += 2 * PI;
if (Y[i] < 0) Y[i] += 2 * PI;
assert(0 < X[i] && X[i] < PI);
assert(0 < Y[i] && Y[i] < PI);
}
auto I = argsort(X);
Y = rearrange(Y, I);
Re mi = 10 * PI;
FOR(i, n) {
if (mi > Y[i]) {
++ANS;
mi = Y[i];
}
}
}
// convex hull only
ANS += 1;
print(ANS);
}
signed main() {
solve();
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3952kb
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: 1ms
memory: 3952kb
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: 3844kb
input:
3 0 0 3 0 0 3
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 4032kb
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: 3844kb
input:
4 0 0 0 3 3 0 3 3
output:
1
result:
ok 1 number(s): "1"
Test #6:
score: 0
Accepted
time: 7ms
memory: 4100kb
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: 9ms
memory: 4048kb
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: 3ms
memory: 4112kb
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: 5ms
memory: 4304kb
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: 6ms
memory: 4136kb
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: 5ms
memory: 4356kb
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: 1ms
memory: 4112kb
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: 2ms
memory: 4180kb
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: 2ms
memory: 4260kb
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: 3ms
memory: 4352kb
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: 6ms
memory: 4328kb
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: 11ms
memory: 4352kb
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: 21ms
memory: 4100kb
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: 40ms
memory: 4104kb
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: 79ms
memory: 4104kb
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: 98ms
memory: 4164kb
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: 100ms
memory: 4124kb
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: 97ms
memory: 4036kb
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: 101ms
memory: 4120kb
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: 100ms
memory: 4300kb
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: 96ms
memory: 4328kb
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: 100ms
memory: 4080kb
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: 100ms
memory: 4148kb
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: 99ms
memory: 4100kb
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: 98ms
memory: 4136kb
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: 93ms
memory: 4028kb
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: 98ms
memory: 4080kb
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: 93ms
memory: 4076kb
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: 90ms
memory: 4148kb
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: 88ms
memory: 4308kb
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: 88ms
memory: 4144kb
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: 87ms
memory: 4080kb
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: 86ms
memory: 4064kb
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: 85ms
memory: 4156kb
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: 83ms
memory: 4028kb
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: 80ms
memory: 4096kb
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: 74ms
memory: 4124kb
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: 76ms
memory: 4076kb
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: 73ms
memory: 4320kb
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: 76ms
memory: 4068kb
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: 73ms
memory: 4264kb
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: 69ms
memory: 4140kb
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: 76ms
memory: 4288kb
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: 70ms
memory: 4064kb
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: 26ms
memory: 4060kb
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: 12ms
memory: 4068kb
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: 6ms
memory: 4060kb
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: 3ms
memory: 4084kb
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: 2ms
memory: 4056kb
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: 1ms
memory: 3904kb
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