QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#280792 | #7783. Military Maneuver | ucup-team180# | AC ✓ | 1949ms | 4660kb | C++20 | 46.4kb | 2023-12-09 17:55:38 | 2023-12-09 17:55:41 |
Judging History
answer
#pragma region Macros
#ifdef noimi
#include "my_template.hpp"
#else
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <immintrin.h>
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfenv>
#include <cfloat>
#include <chrono>
#include <cinttypes>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <immintrin.h>
#include <initializer_list>
#include <iomanip>
#include <ios>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <streambuf>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
#ifdef noimi
#define oj_local(a, b) b
#else
#define oj_local(a, b) a
#endif
#define LOCAL if(oj_local(0, 1))
#define OJ if(oj_local(1, 0))
using namespace std;
using ll = long long;
using ull = unsigned long long int;
using i128 = __int128_t;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ld = long double;
template <typename T> using vc = vector<T>;
template <typename T> using vvc = vector<vc<T>>;
template <typename T> using vvvc = vector<vvc<T>>;
using vi = vc<int>;
using vl = vc<ll>;
using vpi = vc<pii>;
using vpl = vc<pll>;
template <class T> using pq = priority_queue<T>;
template <class T> using pqg = priority_queue<T, vector<T>, greater<T>>;
template <typename T> int si(const T &x) { return x.size(); }
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); }
vi iota(int n) {
vi a(n);
return iota(a.begin(), a.end(), 0), a;
}
template <typename T> vi iota(const vector<T> &a, bool greater = false) {
vi res(a.size());
iota(res.begin(), res.end(), 0);
sort(res.begin(), res.end(), [&](int i, int j) {
if(greater) return a[i] > a[j];
return a[i] < a[j];
});
return res;
}
// macros
#define overload5(a, b, c, d, e, name, ...) name
#define overload4(a, b, c, d, name, ...) name
#define endl '\n'
#define REP0(n) for(ll jidlsjf = 0; jidlsjf < n; ++jidlsjf)
#define REP1(i, n) for(ll i = 0; i < (n); ++i)
#define REP2(i, a, b) for(ll i = (a); i < (b); ++i)
#define REP3(i, a, b, c) for(ll i = (a); i < (b); i += (c))
#define rep(...) overload4(__VA_ARGS__, REP3, REP2, REP1, REP0)(__VA_ARGS__)
#define per0(n) for(int jidlsjf = 0; jidlsjf < (n); ++jidlsjf)
#define per1(i, n) for(ll i = (n)-1; i >= 0; --i)
#define per2(i, a, b) for(ll i = (a)-1; i >= b; --i)
#define per3(i, a, b, c) for(ll i = (a)-1; i >= (b); i -= (c))
#define per(...) overload4(__VA_ARGS__, per3, per2, per1, per0)(__VA_ARGS__)
#define fore0(a) rep(a.size())
#define fore1(i, a) for(auto &&i : a)
#define fore2(a, b, v) for(auto &&[a, b] : v)
#define fore3(a, b, c, v) for(auto &&[a, b, c] : v)
#define fore4(a, b, c, d, v) for(auto &&[a, b, c, d] : v)
#define fore(...) overload5(__VA_ARGS__, fore4, fore3, fore2, fore1, fore0)(__VA_ARGS__)
#define setbits(j, n) for(ll iiiii = (n), j = lowbit(iiiii); iiiii; iiiii ^= 1 << j, j = lowbit(iiiii))
#define perm(v) for(bool permrepflag = true; (permrepflag ? exchange(permrepflag, false) : next_permutation(all(v)));)
#define fi first
#define se second
#define pb push_back
#define ppb pop_back
#define ppf pop_front
#define eb emplace_back
#define drop(s) cout << #s << endl, exit(0)
#define si(c) (int)(c).size()
#define lb(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define lbg(c, x) distance((c).begin(), lower_bound(all(c), (x), greater{}))
#define ub(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define ubg(c, x) distance((c).begin(), upper_bound(all(c), (x), greater{}))
#define rng(v, l, r) v.begin() + (l), v.begin() + (r)
#define all(c) begin(c), end(c)
#define rall(c) rbegin(c), rend(c)
#define SORT(v) sort(all(v))
#define REV(v) reverse(all(v))
#define UNIQUE(x) SORT(x), x.erase(unique(all(x)), x.end())
template <typename T = ll, typename S> T SUM(const S &v) { return accumulate(all(v), T(0)); }
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define overload2(_1, _2, name, ...) name
#define vec(type, name, ...) vector<type> name(__VA_ARGS__)
#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__))))
constexpr pii dx4[4] = {pii{1, 0}, pii{0, 1}, pii{-1, 0}, pii{0, -1}};
constexpr pii dx8[8] = {{1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1}};
namespace yesno_impl {
const string YESNO[2] = {"NO", "YES"};
const string YesNo[2] = {"No", "Yes"};
const string yesno[2] = {"no", "yes"};
const string firstsecond[2] = {"second", "first"};
const string FirstSecond[2] = {"Second", "First"};
const string possiblestr[2] = {"impossible", "possible"};
const string Possiblestr[2] = {"Impossible", "Possible"};
void YES(bool t = 1) { cout << YESNO[t] << endl; }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { cout << YesNo[t] << endl; }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { cout << yesno[t] << endl; }
void no(bool t = 1) { yes(!t); }
void first(bool t = 1) { cout << firstsecond[t] << endl; }
void First(bool t = 1) { cout << FirstSecond[t] << endl; }
void possible(bool t = 1) { cout << possiblestr[t] << endl; }
void Possible(bool t = 1) { cout << Possiblestr[t] << endl; }
}; // namespace yesno_impl
using namespace yesno_impl;
#define INT(...) \
int __VA_ARGS__; \
IN(__VA_ARGS__)
#define INTd(...) \
int __VA_ARGS__; \
IN2(__VA_ARGS__)
#define LL(...) \
ll __VA_ARGS__; \
IN(__VA_ARGS__)
#define LLd(...) \
ll __VA_ARGS__; \
IN2(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
IN(__VA_ARGS__)
#define CHR(...) \
char __VA_ARGS__; \
IN(__VA_ARGS__)
#define DBL(...) \
double __VA_ARGS__; \
IN(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
IN(name)
#define VECd(type, name, size) \
vector<type> name(size); \
IN2(name)
#define VEC2(type, name1, name2, size) \
vector<type> name1(size), name2(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i])
#define VEC2d(type, name1, name2, size) \
vector<type> name1(size), name2(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i])
#define VEC3(type, name1, name2, name3, size) \
vector<type> name1(size), name2(size), name3(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i])
#define VEC3d(type, name1, name2, name3, size) \
vector<type> name1(size), name2(size), name3(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i])
#define VEC4(type, name1, name2, name3, name4, size) \
vector<type> name1(size), name2(size), name3(size), name4(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i], name4[i]);
#define VEC4d(type, name1, name2, name3, name4, size) \
vector<type> name1(size), name2(size), name3(size), name4(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i], name4[i]);
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
IN(name)
#define VVd(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
IN2(name)
int scan() { return getchar(); }
void scan(int &a) { cin >> a; }
void scan(long long &a) { cin >> a; }
void scan(char &a) { cin >> a; }
void scan(double &a) { cin >> a; }
void scan(string &a) { cin >> a; }
template <class T, class S> void scan(pair<T, S> &p) { scan(p.first), scan(p.second); }
template <class T> void scan(vector<T> &);
template <class T> void scan(vector<T> &a) {
for(auto &i : a) scan(i);
}
template <class T> void scan(T &a) { cin >> a; }
void IN() {}
void IN2() {}
template <class Head, class... Tail> void IN(Head &head, Tail &...tail) {
scan(head);
IN(tail...);
}
template <class Head, class... Tail> void IN2(Head &head, Tail &...tail) {
scan(head);
--head;
IN2(tail...);
}
template <int p = -1> void pat() {}
template <int p = -1, class Head, class... Tail> void pat(Head &h, Tail &...tail) {
h += p;
pat<p>(tail...);
}
template <typename T, typename S> T ceil(T x, S y) {
assert(y);
return (y < 0 ? ceil(-x, -y) : (x > 0 ? (x + y - 1) / y : x / y));
}
template <typename T, typename S> T floor(T x, S y) {
assert(y);
return (y < 0 ? floor(-x, -y) : (x > 0 ? x / y : x / y - (x % y == 0 ? 0 : 1)));
}
template <typename T, typename S, typename U> U bigmul(const T &x, const S &y, const U &lim) { // clamp(x * y, -lim, lim)
if(x < 0 and y < 0) return bigmul(-x, -y, lim);
if(x < 0) return -bigmul(-x, y, lim);
if(y < 0) return -bigmul(x, -y, lim);
return y == 0 or x <= lim / y ? x * y : lim;
}
template <class T> T POW(T x, int n) {
T res = 1;
for(; n; n >>= 1, x *= x)
if(n & 1) res *= x;
return res;
}
template <class T, class S> T POW(T x, S n, const ll &mod) {
T res = 1;
x %= mod;
for(; n; n >>= 1, x = x * x % mod)
if(n & 1) res = res * x % mod;
return res;
}
vector<pll> factor(ll x) {
vector<pll> ans;
for(ll i = 2; i * i <= x; i++)
if(x % i == 0) {
ans.push_back({i, 1});
while((x /= i) % i == 0) ans.back().second++;
}
if(x != 1) ans.push_back({x, 1});
return ans;
}
template <class T> vector<T> divisor(T x) {
vector<T> ans;
for(T i = 1; i * i <= x; i++)
if(x % i == 0) {
ans.pb(i);
if(i * i != x) ans.pb(x / i);
}
return ans;
}
template <typename T> void zip(vector<T> &x) {
vector<T> y = x;
UNIQUE(y);
for(int i = 0; i < x.size(); ++i) { x[i] = lb(y, x[i]); }
}
template <class S> void fold_in(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void fold_in(vector<S> &v, Head &&a, Tail &&...tail) {
for(auto e : a) v.emplace_back(e);
fold_in(v, tail...);
}
template <class S> void renumber(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void renumber(vector<S> &v, Head &&a, Tail &&...tail) {
for(auto &&e : a) e = lb(v, e);
renumber(v, tail...);
}
template <class S, class... Args> vector<S> zip(vector<S> &head, Args &&...args) {
vector<S> v;
fold_in(v, head, args...);
sort(all(v)), v.erase(unique(all(v)), v.end());
renumber(v, head, args...);
return v;
}
template <typename S> void rearrange(const vector<S> &id) {}
template <typename S, typename T> void rearrange_exec(const vector<S> &id, vector<T> &v) {
vector<T> w(v.size());
rep(i, si(id)) w[i] = v[id[i]];
v.swap(w);
}
// 並び替える順番, 並び替える vector 達
template <typename S, typename Head, typename... Tail> void rearrange(const vector<S> &id, Head &a, Tail &...tail) {
rearrange_exec(id, a);
rearrange(id, tail...);
}
template <typename T> vector<T> RUI(const vector<T> &v) {
vector<T> res(v.size() + 1);
for(int i = 0; i < v.size(); i++) res[i + 1] = res[i] + v[i];
return res;
}
template <typename T> void zeta_supersetsum(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] += f[b | i];
}
template <typename T> void zeta_subsetsum(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] += f[b];
}
template <typename T> void mobius_subset(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] -= f[b | i];
}
template <typename T> void mobius_superset(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] -= f[b];
}
// 反時計周りに 90 度回転
template <typename T> void rot(vector<vector<T>> &v) {
if(empty(v)) return;
int n = v.size(), m = v[0].size();
vector<vector<T>> res(m, vector<T>(n));
rep(i, n) rep(j, m) res[m - 1 - j][i] = v[i][j];
v.swap(res);
}
vector<int> counter(const vector<int> &v, int max_num = -1) {
if(max_num == -1) max_num = MAX(v);
vector<int> res(max_num + 1);
fore(e, v) res[e]++;
return res;
}
// x in [l, r)
template <class T, class S> bool inc(const T &x, const S &l, const S &r) { return l <= x and x < r; }
template <class T, class S> bool inc(const T &x, const pair<S, S> &p) { return p.first <= x and x < p.second; }
// 便利関数
constexpr ll ten(int n) { return n == 0 ? 1 : ten(n - 1) * 10; }
constexpr ll tri(ll n) { return n * (n + 1) / 2; }
// l + ... + r
constexpr ll tri(ll l, ll r) { return (l + r) * (r - l + 1) / 2; }
ll max(int x, ll y) { return max((ll)x, y); }
ll max(ll x, int y) { return max(x, (ll)y); }
int min(int x, ll y) { return min((ll)x, y); }
int min(ll x, int y) { return min(x, (ll)y); }
// bit 演算系
#define bit(i) (1LL << i) // (1 << i)
#define test(b, i) (b >> i & 1) // b の i bit 目が立っているか
ll pow2(int i) { return 1LL << i; }
int topbit(signed t) { return t == 0 ? -1 : 31 - __builtin_clz(t); }
int topbit(ll t) { return t == 0 ? -1 : 63 - __builtin_clzll(t); }
int lowbit(signed a) { return a == 0 ? 32 : __builtin_ctz(a); }
int lowbit(ll a) { return a == 0 ? 64 : __builtin_ctzll(a); }
// int allbit(int n) { return (1 << n) - 1; }
constexpr ll mask(int n) { return (1LL << n) - 1; }
// int popcount(signed t) { return __builtin_popcount(t); }
// int popcount(ll t) { return __builtin_popcountll(t); }
int popcount(uint64_t t) { return __builtin_popcountll(t); }
static inline uint64_t popcount64(uint64_t x) {
uint64_t m1 = 0x5555555555555555ll;
uint64_t m2 = 0x3333333333333333ll;
uint64_t m4 = 0x0F0F0F0F0F0F0F0Fll;
uint64_t h01 = 0x0101010101010101ll;
x -= (x >> 1) & m1;
x = (x & m2) + ((x >> 2) & m2);
x = (x + (x >> 4)) & m4;
return (x * h01) >> 56;
}
bool ispow2(int i) { return i && (i & -i) == i; }
ll rnd(ll l, ll r) { //[l, r)
#ifdef noimi
static mt19937_64 gen;
#else
static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
#endif
return uniform_int_distribution<ll>(l, r - 1)(gen);
}
ll rnd(ll n) { return rnd(0, n); }
template <class t> void random_shuffle(vc<t> &a) { rep(i, si(a)) swap(a[i], a[rnd(0, i + 1)]); }
int in() {
int x;
cin >> x;
return x;
}
ll lin() {
unsigned long long x;
cin >> x;
return x;
}
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x) { return pair<T, S>(-x.first, -x.second); }
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi - y.fi, x.se - y.se); }
template <class T, class S> pair<T, S> operator+(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi + y.fi, x.se + y.se); }
template <class T> pair<T, T> operator&(const pair<T, T> &l, const pair<T, T> &r) { return pair<T, T>(max(l.fi, r.fi), min(l.se, r.se)); }
template <class T, class S> pair<T, S> operator+=(pair<T, S> &l, const pair<T, S> &r) { return l = l + r; }
template <class T, class S> pair<T, S> operator-=(pair<T, S> &l, const pair<T, S> &r) { return l = l - r; }
template <class T> bool intersect(const pair<T, T> &l, const pair<T, T> &r) { return (l.se < r.se ? r.fi < l.se : l.fi < r.se); }
template <class T> vector<T> &operator++(vector<T> &v) {
fore(e, v) e++;
return v;
}
template <class T> vector<T> operator++(vector<T> &v, int) {
auto res = v;
fore(e, v) e++;
return res;
}
template <class T> vector<T> &operator--(vector<T> &v) {
fore(e, v) e--;
return v;
}
template <class T> vector<T> operator--(vector<T> &v, int) {
auto res = v;
fore(e, v) e--;
return res;
}
template <class T> void connect(vector<T> &l, const vector<T> &r) { fore(e, r) l.eb(e); }
template <class T> vector<T> operator+(const vector<T> &l, const vector<T> &r) {
vector<T> res(max(si(l), si(r)));
rep(i, si(l)) res[i] += l[i];
rep(i, si(r)) res[i] += r[i];
return res;
}
template <class T> vector<T> operator-(const vector<T> &l, const vector<T> &r) {
vector<T> res(max(si(l), si(r)));
rep(i, si(l)) res[i] += l[i];
rep(i, si(r)) res[i] -= r[i];
return res;
}
template <class T> vector<T> &operator+=(const vector<T> &l, const vector<T> &r) {
if(si(l) < si(r)) l.resize(si(r));
rep(i, si(r)) l[i] += r[i];
return l;
}
template <class T> vector<T> &operator-=(const vector<T> &l, const vector<T> &r) {
if(si(l) < si(r)) l.resize(si(r));
rep(i, si(r)) l[i] -= r[i];
return l;
}
template <class T> vector<T> &operator+=(vector<T> &v, const T &x) {
fore(e, v) e += x;
return v;
}
template <class T> vector<T> &operator-=(vector<T> &v, const T &x) {
fore(e, v) e -= x;
return v;
}
template <typename T> struct edge {
int from, to;
T cost;
int id;
edge(int to, T cost) : from(-1), to(to), cost(cost) {}
edge(int from, int to, T cost) : from(from), to(to), cost(cost) {}
edge(int from, int to, T cost, int id) : from(from), to(to), cost(cost), id(id) {}
constexpr bool operator<(const edge<T> &rhs) const noexcept { return cost < rhs.cost; }
edge &operator=(const int &x) {
to = x;
return *this;
}
operator int() const { return to; }
friend ostream operator<<(ostream &os, const edge &e) { return os << e.to; }
};
template <typename T> using Edges = vector<edge<T>>;
template <typename T = int> Edges<T> read_edges(int m, bool weighted = false) {
Edges<T> res;
res.reserve(m);
for(int i = 0; i < m; i++) {
int u, v, c = 0;
scan(u), scan(v), u--, v--;
if(weighted) scan(c);
res.eb(u, v, c, i);
}
return res;
}
using Tree = vector<vector<int>>;
using Graph = vector<vector<int>>;
template <class T> using Wgraph = vector<vector<edge<T>>>;
Graph getG(int n, int m = -1, bool directed = false, int margin = 1) {
Tree res(n);
if(m == -1) m = n - 1;
while(m--) {
int a, b;
cin >> a >> b;
a -= margin, b -= margin;
res[a].emplace_back(b);
if(!directed) res[b].emplace_back(a);
}
return res;
}
Graph getTreeFromPar(int n, int margin = 1) {
Graph res(n);
for(int i = 1; i < n; i++) {
int a;
cin >> a;
res[a - margin].emplace_back(i);
}
return res;
}
template <class T> Wgraph<T> getWg(int n, int m = -1, bool directed = false, int margin = 1) {
Wgraph<T> res(n);
if(m == -1) m = n - 1;
while(m--) {
int a, b;
T c;
scan(a), scan(b), scan(c);
a -= margin, b -= margin;
res[a].emplace_back(b, c);
if(!directed) res[b].emplace_back(a, c);
}
return res;
}
void add(Graph &G, int x, int y) { G[x].eb(y), G[y].eb(x); }
template <class S, class T> void add(Wgraph<S> &G, int x, int y, T c) { G[x].eb(y, c), G[y].eb(x, c); }
#define TEST \
INT(testcases); \
while(testcases--)
i128 abs(const i128 &x) { return x > 0 ? x : -x; }
istream &operator>>(istream &is, i128 &v) {
string s;
is >> s;
v = 0;
for(int i = 0; i < (int)s.size(); i++) {
if(isdigit(s[i])) { v = v * 10 + s[i] - '0'; }
}
if(s[0] == '-') { v *= -1; }
return is;
}
ostream &operator<<(ostream &os, const i128 &v) {
if(v == 0) { return (os << "0"); }
i128 num = v;
if(v < 0) {
os << '-';
num = -num;
}
string s;
for(; num > 0; num /= 10) { s.push_back((char)(num % 10) + '0'); }
reverse(s.begin(), s.end());
return (os << s);
}
namespace aux {
template <typename T, unsigned N, unsigned L> struct tp {
static void output(std::ostream &os, const T &v) {
os << std::get<N>(v) << (&os == &cerr ? ", " : " ");
tp<T, N + 1, L>::output(os, v);
}
};
template <typename T, unsigned N> struct tp<T, N, N> {
static void output(std::ostream &os, const T &v) { os << std::get<N>(v); }
};
} // namespace aux
template <typename... Ts> std::ostream &operator<<(std::ostream &os, const std::tuple<Ts...> &t) {
if(&os == &cerr) { os << '('; }
aux::tp<std::tuple<Ts...>, 0, sizeof...(Ts) - 1>::output(os, t);
if(&os == &cerr) { os << ')'; }
return os;
}
template <typename T, typename S, typename U> std::ostream &operator<<(std::ostream &os, const priority_queue<T, S, U> &_pq) {
auto pq = _pq;
vector<T> res;
while(!empty(pq)) res.emplace_back(pq.top()), pq.pop();
return os << res;
}
template <class T, class S> ostream &operator<<(ostream &os, const pair<T, S> &p) {
if(&os == &cerr) { return os << "(" << p.first << ", " << p.second << ")"; }
return os << p.first << " " << p.second;
}
template <class Ch, class Tr, class Container> std::basic_ostream<Ch, Tr> &operator<<(std::basic_ostream<Ch, Tr> &os, const Container &x) {
bool f = true;
if(&os == &cerr) os << "[";
for(auto &y : x) {
if(&os == &cerr)
os << (f ? "" : ", ") << y;
else
os << (f ? "" : " ") << y;
f = false;
}
if(&os == &cerr) os << "]";
return os;
}
#define dump(...) static_cast<void>(0)
#define dbg(...) static_cast<void>(0)
void OUT() { cout << endl; }
template <class Head, class... Tail> void OUT(const Head &head, const Tail &...tail) {
cout << head;
if(sizeof...(tail)) cout << ' ';
OUT(tail...);
}
template <typename T> static constexpr T inf = numeric_limits<T>::max() / 2;
template <class T, class S> constexpr pair<T, S> inf<pair<T, S>> = {inf<T>, inf<S>};
template <class T> void OUT2(const T &t, T INF = inf<T>, T res = -1) { OUT(t != INF ? t : res); }
template <class T> void OUT2(vector<T> &v, T INF = inf<T>, T res = -1) {
fore(e, v) if(e == INF) e = res;
OUT(v);
fore(e, v) if(e == res) e = INF;
}
template <class F> struct REC {
F f;
REC(F &&f_) : f(forward<F>(f_)) {}
template <class... Args> auto operator()(Args &&...args) const { return f(*this, forward<Args>(args)...); }
};
template <class S> vector<pair<S, int>> runLength(const vector<S> &v) {
vector<pair<S, int>> res;
for(auto &e : v) {
if(res.empty() or res.back().fi != e)
res.eb(e, 1);
else
res.back().se++;
}
return res;
}
vector<pair<char, int>> runLength(const string &v) {
vector<pair<char, int>> res;
for(auto &e : v) {
if(res.empty() or res.back().fi != e)
res.eb(e, 1);
else
res.back().se++;
}
return res;
}
struct string_converter {
char start = 0;
char type(const char &c) const { return (islower(c) ? 'a' : isupper(c) ? 'A' : isdigit(c) ? '0' : 0); }
int convert(const char &c) {
if(!start) start = type(c);
return c - start;
}
int convert(const char &c, const string &chars) { return chars.find(c); }
template <typename T> auto convert(const T &v) {
vector<decltype(convert(v[0]))> ret;
ret.reserve(size(v));
for(auto &&e : v) ret.emplace_back(convert(e));
return ret;
}
template <typename T> auto convert(const T &v, const string &chars) {
vector<decltype(convert(v[0], chars))> ret;
ret.reserve(size(v));
for(auto &&e : v) ret.emplace_back(convert(e, chars));
return ret;
}
int operator()(const char &v, char s = 0) {
start = s;
return convert(v);
}
int operator()(const char &v, const string &chars) { return convert(v, chars); }
template <typename T> auto operator()(const T &v, char s = 0) {
start = s;
return convert(v);
}
template <typename T> auto operator()(const T &v, const string &chars) { return convert(v, chars); }
} toint;
template <class T, class F> T bin_search(T ok, T ng, const F &f) {
while(abs(ok - ng) > 1) {
T mid = ok + ng >> 1;
(f(mid) ? ok : ng) = mid;
}
return ok;
}
template <class T, class F> T bin_search_double(T ok, T ng, const F &f, int iter = 80) {
while(iter--) {
// T mid = (ok + ng) / 2;
T mid = sqrtl(ok * ng);
(f(mid) ? ok : ng) = mid;
}
return ok;
}
struct Setup_io {
Setup_io() {
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cout << fixed << setprecision(11);
}
} setup_io;
#endif
#pragma endregion
namespace fast_gcd {
using u64 = uint64_t;
using u32 = uint32_t;
__attribute__((target("bmi"))) constexpr u64 binary_gcd(u64 a, u64 b) {
if(a == 0 || b == 0) return a + b;
int n = __builtin_ctzll(a);
int m = __builtin_ctzll(b);
a >>= n;
b >>= m;
while(a != b) {
int m = __builtin_ctzll(a - b);
bool f = a > b;
u64 c = f ? a : b;
b = f ? b : a;
a = (c - b) >> m;
}
return a << min(n, m);
}
} // namespace fast_gcd
using fast_gcd::binary_gcd;
// q / p
struct frac {
template <typename T> static constexpr inline T gcd(const T a, const T b) { return (b == 0) ? a : gcd(b, a % b); }
ll q, p;
inline constexpr void simplify() {
if(p < 0) {
p *= -1;
q *= -1;
}
ll g = binary_gcd(q < 0 ? -q : q, p);
if(g) {
p /= g;
q /= g;
if(p == 0 and q < 0) q = 1;
}
}
constexpr frac(ll q = 0, ll p = 1) noexcept : q(q), p(p) { simplify(); }
constexpr bool operator<(const frac &r) const { return q * r.p < p * r.q; }
constexpr bool operator>(const frac &r) const { return q * r.p > p * r.q; }
constexpr bool operator<=(const frac &r) const { return q * r.p <= p * r.q; }
constexpr bool operator>=(const frac &r) const { return q * r.p >= p * r.q; }
template <class T> constexpr bool operator<(const T &r) const { return *this < frac(r); }
template <class T> constexpr bool operator>(const T &r) const { return *this > frac(r); }
constexpr bool operator==(const frac &r) const { return q * r.p == p * r.q; }
constexpr bool operator!=(const frac &r) const { return !((*this) == r); }
constexpr frac operator+() const noexcept { return *this; }
constexpr frac operator-() const noexcept { return frac(-q, p); }
constexpr frac operator+(const frac r) const noexcept { return frac(*this) += r; }
constexpr frac operator-(const frac r) const noexcept { return frac(*this) -= r; }
constexpr frac operator*(const frac r) const noexcept { return frac(*this) *= r; }
constexpr frac operator/(const frac r) const noexcept { return frac(*this) /= r; }
constexpr frac &operator+=(const frac &r) noexcept {
ll g = binary_gcd(p, r.p);
q = r.p / g * q + p / g * r.q;
p = p / g * r.p;
(*this).simplify();
return *this;
}
constexpr frac &operator-=(const frac &r) noexcept {
ll g = binary_gcd(p, r.p);
q = r.p / g * q - p / g * r.q;
p = p / g * r.p;
(*this).simplify();
return *this;
}
constexpr frac &operator*=(const frac &r) noexcept {
q *= r.q;
p *= r.p;
(*this).simplify();
return *this;
}
constexpr frac &operator/=(const frac &r) noexcept {
q *= r.p;
p *= r.q;
(*this).simplify();
return *this;
}
void print() {
long double tmp = (long double)q / (long double)p;
cout << tmp;
}
};
istream &operator>>(istream &is, frac &p) {
ll a;
is >> a;
p = frac(a, 1);
return is;
}
ostream &operator<<(ostream &os, const frac &r) { return os << 1.0 * r.q / r.p; }
namespace Geometry {
using T = long double;
constexpr T eps = 1e-9;
bool eq(const T &x, const T &y) { return abs(x - y) <= eps; }
inline constexpr int type(T x, T y) {
if(x == 0 and y == 0) return 0;
if(y < 0 or (y == 0 and x > 0)) return -1;
return 1;
}
struct Point {
T x, y;
constexpr Point(T _x = 0, T _y = 0) : x(_x), y(_y) {}
constexpr Point operator+() const noexcept { return *this; }
constexpr Point operator-() const noexcept { return Point(-x, -y); }
constexpr Point operator+(const Point &p) const { return Point(x + p.x, y + p.y); }
constexpr Point operator-(const Point &p) const { return Point(x - p.x, y - p.y); }
constexpr Point &operator+=(const Point &p) { return x += p.x, y += p.y, *this; }
constexpr Point &operator-=(const Point &p) { return x -= p.x, y -= p.y, *this; }
constexpr T operator*(const Point &p) const { return x * p.x + y * p.y; }
constexpr Point &operator*=(const T &k) { return x *= k, y *= k, *this; }
constexpr Point operator*(const T &k) { return Point(x * k, y * k); }
constexpr bool operator==(const Point &r) const noexcept { return r.x == x and r.y == y; }
constexpr T cross(const Point &r) const { return x * r.y - y * r.x; }
constexpr bool operator<(const Point &r) const { return pair(x, y) < pair(r.x, r.y); }
// 1 : left, 0 : same, -1 : right
constexpr int toleft(const Point &r) const {
auto t = cross(r);
return t > eps ? 1 : t < -eps ? -1 : 0;
}
constexpr bool arg_cmp(const Point &r) const {
int L = type(x, y), R = type(r.x, r.y);
if(L != R) return L < R;
T X = x * r.y, Y = r.x * y;
if(X != Y) return X > Y;
return x < r.x;
}
};
bool arg_cmp(const Point &l, const Point &r) { return l.arg_cmp(r); }
ostream &operator<<(ostream &os, const Point &p) { return os << p.x << " " << p.y; }
istream &operator>>(istream &is, Point &p) {
is >> p.x >> p.y;
return is;
}
struct Line {
Point a, b;
Line() = default;
Line(Point a, Point b) : a(a), b(b) {}
// ax + by = c
Line(T A, T B, T C) {
if(A == 0) {
a = Point(0, C / B), b = Point(1, C / B);
} else if(B == 0) {
a = Point(C / A, 0), b = Point(C / A, 1);
} else {
a = Point(0, C / B), b = Point(C / A, 0);
}
}
// 1 : left, 0 : same, -1 : right
constexpr int toleft(const Point &r) const {
auto t = (b - a).cross(r - a);
return t > eps ? 1 : t < -eps ? -1 : 0;
}
friend std::ostream &operator<<(std::ostream &os, Line &ls) {
return os << "{"
<< "(" << ls.a.x << ", " << ls.a.y << "), (" << ls.b.x << ", " << ls.b.y << ")}";
}
};
istream &operator>>(istream &is, Line &p) { return is >> p.a >> p.b; }
Point rotate(long double theta, const Point &p) { return Point(cosl(theta) * p.x - sinl(theta) * p.y, sinl(theta) * p.x + cosl(theta) * p.y); }
struct Segment : Line {
Segment() = default;
Segment(Point a, Point b) : Line(a, b) {}
};
ostream &operator<<(ostream &os, Segment &p) { return os << p.a << " to " << p.b; }
istream &operator>>(istream &is, Segment &p) {
is >> p.a >> p.b;
return is;
}
struct Circle {
Point p;
T r;
Circle() = default;
Circle(Point p, T r) : p(p), r(r) {}
};
using pt = Point;
using Points = vector<pt>;
using Polygon = Points;
T cross(const pt &x, const pt &y) { return x.x * y.y - x.y * y.x; }
T dot(const pt &x, const pt &y) { return x.x * y.x + x.y * y.y; }
T abs2(const pt &x) { return dot(x, x); }
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_1_C
// 点の回転方向
int ccw(const Point &a, Point b, Point c) {
b = b - a, c = c - a;
if(cross(b, c) > 0) return +1; // "COUNTER_CLOCKWISE"
if(cross(b, c) < 0) return -1; // "CLOCKWISE"
if(dot(b, c) < 0) return +2; // "ONLINE_BACK"
if(abs2(b) < abs2(c)) return -2; // "ONLINE_FRONT"
return 0; // "ON_SEGMENT"
}
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_2_A
// 平行判定
bool parallel(const Line &a, const Line &b) { return (cross(a.b - a.a, b.b - b.a) == 0); }
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_2_A
// 垂直判定
bool orthogonal(const Line &a, const Line &b) { return (dot(a.a - a.b, b.a - b.b) == 0); }
bool intersect(const Line &l, const Point &p) { return abs(ccw(l.a, l.b, p)) != 1; }
bool intersect(const Line &l, const Line &m) { return !parallel(l, m); }
bool intersect(const Segment &s, const Point &p) { return ccw(s.a, s.b, p) == 0; }
bool intersect(const Line &l, const Segment &s) { return cross(l.b - l.a, s.a - l.a) * cross(l.b - l.a, s.b - l.a) <= 0; }
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_2_B
bool intersect(const Segment &s, const Segment &t) { return ccw(s.a, s.b, t.a) * ccw(s.a, s.b, t.b) <= 0 && ccw(t.a, t.b, s.a) * ccw(t.a, t.b, s.b) <= 0; }
bool intersect(const Polygon &ps, const Polygon &qs) {
int pl = si(ps), ql = si(qs), i = 0, j = 0;
while((i < pl or j < ql) and (i < 2 * pl) and (j < 2 * ql)) {
auto ps0 = ps[(i + pl - 1) % pl], ps1 = ps[i % pl];
auto qs0 = qs[(j + ql - 1) % ql], qs1 = qs[j % ql];
if(intersect(Segment(ps0, ps1), Segment(qs0, qs1))) return true;
Point a = ps1 - ps0;
Point b = qs1 - qs0;
T v = cross(a, b);
T va = cross(qs1 - qs0, ps1 - qs0);
T vb = cross(ps1 - ps0, qs1 - ps0);
if(!v and va < 0 and vb < 0) return false;
if(!v and !va and !vb) {
i += 1;
} else if(v >= 0) {
if(vb > 0)
i += 1;
else
j += 1;
} else {
if(va > 0)
j += 1;
else
i += 1;
}
}
return false;
}
T norm(const Point &p) { return p.x * p.x + p.y * p.y; }
Point projection(const Segment &l, const Point &p) {
T t = dot(p - l.a, l.a - l.b) / norm(l.a - l.b);
return l.a + (l.a - l.b) * t;
}
Point crosspoint(const Line &l, const Line &m) {
T A = cross(l.b - l.a, m.b - m.a);
T B = cross(l.b - l.a, l.b - m.a);
if(A == 0 and B == 0) return m.a;
return m.a + (m.b - m.a) * (B / A);
}
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_2_C
Point crosspoint(const Segment &l, const Segment &m) { return crosspoint(Line(l), Line(m)); }
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_3_B
// 凸性判定
bool is_convex(const Points &p) {
int n = (int)p.size();
for(int i = 0; i < n; i++) {
if(ccw(p[(i + n - 1) % n], p[i], p[(i + 1) % n]) == -1) return false;
}
return true;
}
Points convex_hull(Points p) {
int n = p.size(), k = 0;
if(n <= 2) return p;
sort(begin(p), end(p), [](pt x, pt y) { return (x.x != y.x ? x.x < y.x : x.y < y.y); });
Points ch(2 * n);
for(int i = 0; i < n; ch[k++] = p[i++]) {
while(k >= 2 && cross(ch[k - 1] - ch[k - 2], p[i] - ch[k - 1]) <= 0) --k;
}
for(int i = n - 2, t = k + 1; i >= 0; ch[k++] = p[i--]) {
while(k >= t && cross(ch[k - 1] - ch[k - 2], p[i] - ch[k - 1]) <= 0) --k;
}
ch.resize(k - 1);
return ch;
}
// 面積の 2 倍
T area2(const Points &p) {
T res = 0;
rep(i, si(p)) { res += cross(p[i], p[i == si(p) - 1 ? 0 : i + 1]); }
return res;
}
enum { _OUT, _ON, _IN };
int contains(const Polygon &Q, const Point &p) {
bool in = false;
for(int i = 0; i < Q.size(); i++) {
Point a = Q[i] - p, b = Q[(i + 1) % Q.size()] - p;
if(a.y > b.y) swap(a, b);
if(a.y <= 0 && 0 < b.y && cross(a, b) < 0) in = !in;
if(cross(a, b) == 0 && dot(a, b) <= 0) return _ON;
}
return in ? _IN : _OUT;
}
Polygon Minkowski_sum(const Polygon &P, const Polygon &Q) {
vector<Segment> e1(P.size()), e2(Q.size()), ed(P.size() + Q.size());
const auto cmp = [](const Segment &u, const Segment &v) { return (u.b - u.a).arg_cmp(v.b - v.a); };
rep(i, P.size()) e1[i] = {P[i], P[(i + 1) % P.size()]};
rep(i, Q.size()) e2[i] = {Q[i], Q[(i + 1) % Q.size()]};
rotate(begin(e1), min_element(all(e1), cmp), end(e1));
rotate(begin(e2), min_element(all(e2), cmp), end(e2));
merge(all(e1), all(e2), begin(ed), cmp);
const auto check = [](const Points &res, const Point &u) {
const auto back1 = res.back(), back2 = *prev(end(res), 2);
return eq(cross(back1 - back2, u - back2), eps) and dot(back1 - back2, u - back1) >= -eps;
};
auto u = e1[0].a + e2[0].a;
Points res{u};
res.reserve(P.size() + Q.size());
for(const auto &v : ed) {
u = u + v.b - v.a;
while(si(res) >= 2 and check(res, u)) res.pop_back();
res.eb(u);
}
if(res.size() and check(res, res[0])) res.pop_back();
return res;
}
// -1 : on, 0 : out, 1 : in
// O(log(n))
int is_in(const Polygon &p, const Point &a) {
if(p.size() == 1) return a == p[0] ? -1 : 0;
if(p.size() == 2) return intersect(Segment(p[0], p[1]), a);
if(a == p[0]) return -1;
if((p[1] - p[0]).toleft(a - p[0]) == -1 || (p.back() - p[0]).toleft(a - p[0]) == 1) return 0;
const auto cmp = [&](const Point &u, const Point &v) { return (u - p[0]).toleft(v - p[0]) == 1; };
const size_t i = lower_bound(p.begin() + 1, p.end(), a, cmp) - p.begin();
if(i == 1) return intersect(Segment(p[0], p[i]), a) ? -1 : 0;
if(i == p.size() - 1 && intersect(Segment(p[0], p[i]), a)) return -1;
if(intersect(Segment(p[i - 1], p[i]), a)) return -1;
return (p[i] - p[i - 1]).toleft(a - p[i - 1]) > 0;
}
Points halfplane_intersection(vector<Line> L, const T inf = 1e9) {
Point box[4] = {Point(inf, inf), Point(-inf, inf), Point(-inf, -inf), Point(inf, -inf)};
rep(i, 4) { L.emplace_back(box[i], box[(i + 1) % 4]); }
sort(all(L), [](const Line &l, const Line &r) { return (l.b - l.a).arg_cmp(r.b - r.a); });
deque<Line> dq;
int len = 0;
auto check = [](const Line &a, const Line &b, const Line &c) { return a.toleft(crosspoint(b, c)) == -1; };
rep(i, L.size()) {
while(dq.size() > 1 and check(L[i], *(end(dq) - 2), *(end(dq) - 1))) dq.pop_back();
while(dq.size() > 1 and check(L[i], dq[0], dq[1])) dq.pop_front();
// dump(L[i], si(dq));
if(dq.size() and eq(cross(L[i].b - L[i].a, dq.back().b - dq.back().a), 0)) {
if(dot(L[i].b - L[i].a, dq.back().b - dq.back().a) < eps) return {};
if(L[i].toleft(dq.back().a) == -1)
dq.pop_back();
else
continue;
}
dq.emplace_back(L[i]);
}
while(dq.size() > 2 and check(dq[0], *(end(dq) - 2), *(end(dq) - 1))) dq.pop_back();
while(dq.size() > 2 and check(dq.back(), dq[0], dq[1])) dq.pop_front();
if(si(dq) < 3) return {};
Polygon ret(dq.size());
rep(i, dq.size()) ret[i] = crosspoint(dq[i], dq[(i + 1) % dq.size()]);
Polygon res;
fore(e, ret) {
if(empty(res) or !(res.back() == e)) res.eb(e);
}
while(si(res) > 1 and res.front() == res.back()) res.pop_back();
return res;
}
} // namespace Geometry
using namespace Geometry;
Point projection(const Line &l, const Point &p) {
long double t = dot(p - l.a, l.a - l.b) / norm(l.a - l.b);
return l.a + (l.a - l.b) * t;
}
Point projection(const Segment &l, const Point &p) {
long double t = dot(p - l.a, l.a - l.b) / norm(l.a - l.b);
return l.a + (l.a - l.b) * t;
}
long double abs(Point P) { return sqrtl(abs2(P)); }
long double dist(const Point &A, const Point &B) { return hypot(A.x - B.x, A.y - B.y); }
// 三角形 PAB の内部の点の、P との距離の二乗の期待値
long double solve(const Point &P, const Point &A, const Point &B) {
if(dist(A, B) < 1e-11) {
Point C = (A + B) * 0.5;
return ((P.x - C.x) * (P.x - C.x) + (P.y - C.y) * (P.y - C.y)) / 3;
}
auto H = projection(Line(A, B), P);
long double h = abs(H - P), a = abs(H - A), b = abs(H - B);
if(ccw(A, H, B) == -2) a = -a;
return (a * a + a * b + b * b + h * h * 3) / 6;
}
const long double PI = acosl(-1);
int main() {
INT(xl, yl, xr, yr);
INT(n);
Points P(n);
rep(i, n) { cin >> P[i].x >> P[i].y; }
vector<Line> rect;
rect.eb(Line(Point(xl, yl), Point(xr, yl)));
rect.eb(Line(Point(xr, yl), Point(xr, yr)));
rect.eb(Line(Point(xr, yr), Point(xl, yr)));
rect.eb(Line(Point(xl, yr), Point(xl, yl)));
long double ans = 0;
rep(i, n) {
auto v = rect, w = rect;
// v : min, w : max
rep(j, n) {
dump(i, j);
if(i == j) continue;
Point mid = (P[i] + P[j]) * 0.5;
Point nxt = mid + rotate(PI / 2, mid - P[i]);
v.eb(Line(mid, nxt));
w.eb(Line(nxt, mid));
}
dump(i);
auto f = [&](vector<Line> &v) {
auto C = halfplane_intersection(v);
dump(C);
long double res = 0;
rep(j, si(C)) {
auto p = C[j], q = C[(j + 1) % si(C)];
auto F1 = [&](Point p) { return -powl(p.y - P[i].y, 3) / 3; };
auto F2 = [&](Point p) { return powl(p.x - P[i].x, 3) / 3; };
auto p0 = p;
auto p1 = (p * 2 + q) * (1. / 3);
auto p2 = (p + q * 2) * (1. / 3);
auto p3 = q;
res += (q.x - p.x) * (F1(p0) + F1(p1) * 3 + F1(p2) * 3 + F1(p3)) / 8;
res += (q.y - p.y) * (F2(p0) + F2(p1) * 3 + F2(p2) * 3 + F2(p3)) / 8;
}
dump(res);
return res;
};
ans += f(w) - f(v);
}
OUT(ans / (xr - xl) / (yr - yl) * PI);
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 4024kb
input:
0 0 2 2 2 3 1 1 3
output:
8.37758040957
result:
ok found '8.3775804', expected '8.3775804', error '0.0000000'
Test #2:
score: 0
Accepted
time: 0ms
memory: 4148kb
input:
0 0 2 2 2 5 1 1 3
output:
37.69911184308
result:
ok found '37.6991118', expected '37.6991118', error '0.0000000'
Test #3:
score: 0
Accepted
time: 1785ms
memory: 4584kb
input:
-2911 2151 336 5941 2000 -83 79 -94 47 48 -29 -47 64 84 75 -44 -86 -58 -11 -31 58 20 53 80 -19 -82 74 -60 -26 8 -68 -42 -61 -14 12 -58 -18 92 10 35 -26 71 64 76 89 -80 6 70 4 -96 -99 95 -80 -3 -22 71 -89 -75 17 -35 -82 -59 95 60 48 -74 50 -82 90 -26 5 -75 -31 -45 85 85 14 -70 -57 59 46 55 13 -23 60 ...
output:
6657168.14285338541
result:
ok found '6657168.1428534', expected '6657168.1428534', error '0.0000000'
Test #4:
score: 0
Accepted
time: 1763ms
memory: 4540kb
input:
-3013 5287 7654 9132 2000 -19 49 -17 -35 64 68 48 -49 -72 -14 29 -93 -13 -8 -80 11 39 88 -31 82 68 -66 5 41 -74 -8 0 15 11 34 69 -12 15 -86 5 -78 -48 73 10 9 -2 8 81 52 41 -43 -45 -41 -23 60 -40 -45 -26 27 -32 73 8 -20 2 91 46 17 51 -66 -65 -32 37 -9 58 63 -14 -31 60 -56 -85 -22 9 -66 -7 -53 -21 40 ...
output:
10130702.49401498938
result:
ok found '10130702.4940150', expected '10130702.4940150', error '0.0000000'
Test #5:
score: 0
Accepted
time: 1877ms
memory: 4528kb
input:
-5561 9559 6905 9930 2000 79 338 2 214 325 -193 -390 -157 -517 943 -759 970 449 901 -369 636 -661 -211 847 -558 223 -564 185 822 -656 -854 -991 -617 -422 -169 -63 -799 327 -911 -960 945 -948 831 -494 93 266 -299 139 -535 796 707 75 -146 10 566 72 -713 -132 -341 348 924 -739 -838 982 995 -445 500 -71...
output:
158891446.62387779343
result:
ok found '158891446.6238778', expected '158891446.6238778', error '0.0000000'
Test #6:
score: 0
Accepted
time: 1869ms
memory: 4592kb
input:
-5245 -7558 1275 934 2000 -40 125 79 -30 49 13 -127 153 -151 -28 -82 -140 147 131 123 -105 -84 71 -49 -146 -140 82 57 172 -140 -32 -173 24 -55 -101 44 142 -68 -114 122 69 -137 66 19 199 31 109 -161 -66 63 -101 65 -114 166 -66 83 -162 60 70 -19 -134 15 161 -130 22 -130 50 8 -121 150 89 132 44 -131 -3...
output:
11172638.26562360830
result:
ok found '11172638.2656236', expected '11172638.2656236', error '0.0000000'
Test #7:
score: 0
Accepted
time: 1802ms
memory: 4600kb
input:
-7167 6117 -3297 6866 2000 -346 -144 -227 169 -168 -373 -63 -227 -24 405 -232 -163 295 22 222 351 293 41 -335 260 -43 -426 -205 193 163 -284 -406 284 -202 -114 -339 -86 -413 17 -237 -394 -333 -145 -104 416 -478 -53 451 102 85 58 -124 -472 424 -88 394 243 -459 45 12 -490 -9 465 -159 -202 315 -272 -24...
output:
52361392.51502746276
result:
ok found '52361392.5150275', expected '52361392.5150275', error '0.0000000'
Test #8:
score: 0
Accepted
time: 1903ms
memory: 4512kb
input:
-6462 -5871 5937 5853 2000 386 236 -108 937 -722 354 -710 -475 462 613 -884 446 595 -675 168 394 -744 -551 761 -399 -688 258 -53 104 -614 -177 -273 -678 794 -15 224 -911 -146 -216 53 633 2 -664 202 -440 24 437 495 623 -297 682 -520 -48 598 720 -7 353 163 744 557 13 395 588 -157 -672 631 -705 -68 818...
output:
57605018.87011637932
result:
ok found '57605018.8701164', expected '57605018.8701164', error '0.0000000'
Test #9:
score: 0
Accepted
time: 1894ms
memory: 4592kb
input:
792 4703 2923 5458 2000 7281 5289 -5154 2943 -8483 3113 9380 -576 -2191 -291 -8200 898 -192 4724 1161 441 34 3999 8544 3576 -5481 4273 -9792 9565 4854 1262 4254 -3376 -5778 9480 8631 -2225 7129 2187 5344 7740 2975 6174 -2919 -7172 7990 -5117 -6823 -7233 5020 5269 -9874 1051 8841 4586 -3612 -7483 644...
output:
1133083681.54547012039
result:
ok found '1133083681.5454702', expected '1133083681.5454702', error '0.0000000'
Test #10:
score: 0
Accepted
time: 1877ms
memory: 4540kb
input:
-4075 7303 -1671 8073 2000 -10 305 -1105 -119 -238 205 -1206 -482 943 -89 -1578 223 -520 1158 21 1622 -621 -886 -163 -515 283 1802 36 -1410 213 -1921 -1539 -231 835 148 56 1448 -407 1653 1896 -533 1321 -437 530 172 132 18 1260 586 -363 -220 989 1353 281 -1907 -1116 -801 695 592 1221 -983 1731 -939 -...
output:
205950762.73416203396
result:
ok found '205950762.7341620', expected '205950762.7341621', error '0.0000000'
Test #11:
score: 0
Accepted
time: 1856ms
memory: 4596kb
input:
2121 3865 3457 7582 2000 3902 -1511 -1817 504 -3515 3188 -4470 211 536 1795 2230 -1512 3979 297 2430 901 2368 2525 -2553 -252 476 2279 -3859 2565 -754 396 3358 2726 4787 -664 173 1056 -1154 -1556 -2442 -406 -1838 976 3785 1136 -131 -421 77 4058 3773 2965 1333 -622 4188 -2571 -624 -2051 -1965 4268 -1...
output:
399702074.05400641763
result:
ok found '399702074.0540064', expected '399702074.0540065', error '0.0000000'
Test #12:
score: 0
Accepted
time: 1885ms
memory: 4564kb
input:
5377 -2525 9878 7241 2000 316 9854 1690 3184 -9795 -898 -7924 3181 -2410 1478 -3849 -8880 8447 -487 3826 -2478 1445 -2923 5459 677 8830 -3598 1045 -5139 7231 -6856 -4410 4982 -3180 -2528 -7891 -4137 6686 -3732 -6102 -1926 6562 5714 4562 -5710 223 -9921 2609 -3935 8187 55 -5017 -4465 -1387 -2695 6015...
output:
1061816977.66765942296
result:
ok found '1061816977.6676594', expected '1061816977.6676595', error '0.0000000'
Test #13:
score: 0
Accepted
time: 1788ms
memory: 4560kb
input:
-3243 -8661 4122 -2937 2000 1 7637 0 1870 1 7982 -1 -391 0 -4347 -1 2035 0 -2623 0 6943 0 1511 0 -8789 -1 7213 1 -4998 1 -8958 1 -182 -1 -318 1 3712 0 -3215 1 -5210 1 6983 -1 -2567 1 -470 -1 7652 0 -2394 1 7196 1 280 1 5785 1 545 1 8779 1 1 1 -9675 1 5137 -1 -1160 1 -3955 0 3176 0 -6143 0 519 1 5678...
output:
791760973.95850035391
result:
ok found '791760973.9585004', expected '791760973.9585004', error '0.0000000'
Test #14:
score: 0
Accepted
time: 1718ms
memory: 4548kb
input:
-4763 3483 5561 3747 2000 -3915 1 8391 -1 -4112 0 5453 -1 -8775 1 -2182 0 -3819 1 -2702 1 -7119 1 1279 0 7959 -1 -4345 0 -1024 1 -4853 -1 -2637 1 -2136 -1 -9603 -1 -5869 1 -1765 1 -3625 1 9255 0 4677 1 4660 -1 3250 1 -8156 -1 -2988 0 8492 1 -961 0 9331 -1 -1913 1 -3152 0 8877 -1 8390 0 3420 0 -7929 ...
output:
505360943.97037651562
result:
ok found '505360943.9703765', expected '505360943.9703766', error '0.0000000'
Test #15:
score: 0
Accepted
time: 1827ms
memory: 4536kb
input:
-8627 -2766 -1956 4443 2000 -4 -9231 -6 -3132 4 176 1 8378 1 6264 -3 -9699 -10 -6369 -9 -4283 -7 7401 1 -1418 7 -5096 7 -7114 -4 -3937 2 5922 -1 6133 6 -8932 -6 3552 2 4767 9 7643 3 4129 4 2295 -5 8379 1 768 -10 -8915 5 4022 -6 -6665 4 4425 -3 6046 6 3827 -5 3831 -6 -6224 5 9807 9 11 5 4503 -6 -5911...
output:
448946370.79278799176
result:
ok found '448946370.7927880', expected '448946370.7927880', error '0.0000000'
Test #16:
score: 0
Accepted
time: 1911ms
memory: 4572kb
input:
-4229 -9182 1776 -5186 2000 8444 3 3252 6 -7072 5 5793 -1 1339 2 -3500 6 -9676 -4 -1101 -8 -4997 7 462 -6 1476 7 -1331 9 561 -4 -951 -6 -466 -8 -8455 2 8033 -5 2982 9 -7803 6 8473 1 674 5 -7228 -1 -1891 -10 -3408 -7 -917 -8 9486 -5 355 9 1212 -4 3712 10 9106 1 9958 1 7446 -5 8816 -1 -1752 4 4285 0 -...
output:
438654068.21846061625
result:
ok found '438654068.2184606', expected '438654068.2184606', error '0.0000000'
Test #17:
score: 0
Accepted
time: 1851ms
memory: 4516kb
input:
-6880 -3012 949 2588 2000 56 -2490 59 -8874 -90 7871 -48 9340 -29 -4546 72 1776 -22 -8437 -7 5228 6 -2206 89 -5714 71 -6149 44 8645 -17 -8800 19 -8446 -31 -1438 58 4422 -10 -6275 98 -7180 21 -3721 14 3061 -60 -2084 45 4628 -57 -7683 -19 -5389 97 4046 58 5141 -44 288 49 -3579 -39 -7224 94 5901 -68 -3...
output:
411858700.04329921870
result:
ok found '411858700.0432992', expected '411858700.0432993', error '0.0000000'
Test #18:
score: 0
Accepted
time: 1915ms
memory: 4524kb
input:
2772 -6314 4903 4834 2000 -9330 45 1739 56 1062 -58 6549 -25 2178 88 -6106 -87 -6078 -75 -9429 58 2648 -27 -9516 52 9061 -9 -1775 -3 -6885 74 -4346 27 -1758 -95 -9196 87 -752 -98 1724 -24 825 8 -2431 18 -360 14 1472 52 8871 -71 7205 -39 -8033 -28 8724 8 -5197 -52 9320 -2 2849 -64 -968 -77 9867 100 3...
output:
605362233.75295622071
result:
ok found '605362233.7529563', expected '605362233.7529563', error '0.0000000'
Test #19:
score: 0
Accepted
time: 1929ms
memory: 4600kb
input:
-10000 -10000 10000 10000 2000 8592 4096 9271 1216 8596 5077 9077 1756 9059 3053 8744 4685 8509 4543 7828 4581 8975 2478 9394 2850 9194 3045 9532 1437 9290 1261 8175 4923 8485 4507 8166 4987 8578 4973 9548 2129 9018 3543 8136 5431 8830 2783 9636 2605 8589 2865 9617 1981 9427 1091 7817 5017 9129 1790...
output:
238108908.61757980040
result:
ok found '238108908.6175798', expected '238108908.6175798', error '0.0000000'
Test #20:
score: 0
Accepted
time: 1923ms
memory: 4596kb
input:
-10000 -10000 10000 10000 2000 6262 7501 9152 454 8076 5537 5939 7930 9638 2163 8615 4078 9554 1084 4352 8207 9578 1188 9456 406 8908 3352 5449 7414 8782 3668 8621 4472 9319 957 6598 6780 8818 2341 6747 7300 9941 555 7653 6219 9183 342 7768 5183 8604 4366 3084 8703 7005 6054 7108 6347 9604 498 9180 ...
output:
397620990.08414204611
result:
ok found '397620990.0841420', expected '397620990.0841421', error '0.0000000'
Test #21:
score: 0
Accepted
time: 1949ms
memory: 4528kb
input:
-10000 -10000 10000 10000 2000 1066 9157 9386 1781 6605 7086 2309 8912 9690 2029 7780 6101 -590 9528 9389 1295 7597 5489 9036 4111 6848 6367 5728 7783 8672 4455 7349 5754 9546 1194 391 9337 7748 5828 4912 8500 3010 8983 9877 1235 6371 6950 8942 4055 2111 9469 703 9760 7671 5156 7290 5623 -135 9974 8...
output:
554491808.93941583921
result:
ok found '554491808.9394158', expected '554491808.9394159', error '0.0000000'
Test #22:
score: 0
Accepted
time: 1899ms
memory: 4584kb
input:
-10000 -10000 10000 10000 2000 9179 3249 -7440 6141 1589 9872 -7325 6455 5681 8184 -5197 8181 -4609 8595 8619 4125 6442 6792 -3591 8889 9340 1215 4556 8497 8772 4168 -7033 6910 -6024 7886 9454 1423 2080 9352 799 9732 -1392 9561 -1456 9358 9027 2880 8692 3510 7747 6163 -4921 8380 9405 1846 9325 1029 ...
output:
689400531.77838504093
result:
ok found '689400531.7783850', expected '689400531.7783850', error '0.0000000'
Test #23:
score: 0
Accepted
time: 1910ms
memory: 4572kb
input:
-10000 -10000 10000 10000 2000 -413 9522 8730 4470 3507 9168 5383 8069 8670 4427 -9308 3173 7997 5312 4959 8042 9698 943 7838 5266 -1664 9690 -8665 4435 -7997 5929 -8004 5304 6458 7586 1075 9349 -9665 1477 -9045 3807 -2560 9625 -9175 3732 -2041 9416 4209 8993 -4289 8826 -9394 2481 9442 2659 9358 241...
output:
801988277.64484838996
result:
ok found '801988277.6448483', expected '801988277.6448485', error '0.0000000'
Test #24:
score: 0
Accepted
time: 1902ms
memory: 4600kb
input:
-10000 -10000 10000 10000 2000 -8928 -3936 -6761 7287 -9682 -71 -8639 -3984 -9595 2735 293 9693 2163 9632 -8395 5266 69 9738 -7522 6527 -9270 -2254 1248 9688 -9575 -961 9627 1763 -9052 3587 -7114 6320 1541 9699 9483 1490 9715 929 9537 2145 9232 2774 -8662 4803 -2298 9383 -3408 8923 7113 6554 3071 91...
output:
876785969.03840655740
result:
ok found '876785969.0384066', expected '876785969.0384066', error '0.0000000'
Test #25:
score: 0
Accepted
time: 1894ms
memory: 4540kb
input:
-10000 -10000 10000 10000 2000 -9635 -653 -8720 -4280 -5995 7913 -9350 -2497 -5442 8109 -8247 -5020 -9214 3473 -9607 719 -9089 -3142 -9469 -1962 -9849 -106 9096 3352 -4680 -8597 9250 3140 9456 1742 -3524 8952 6527 7385 -1748 9791 -7220 -6715 9498 2723 4248 8776 -2148 9563 -8946 3525 -8594 -4460 -310...
output:
917958796.41764157137
result:
ok found '917958796.4176415', expected '917958796.4176416', error '0.0000000'
Test #26:
score: 0
Accepted
time: 1905ms
memory: 4592kb
input:
-10000 -10000 10000 10000 2000 -8424 4882 9874 1054 -7516 6283 5824 7919 -9492 2869 -8465 -5065 -7677 6023 9658 1194 -9032 -4038 -1597 9671 -6382 -7575 -7148 6793 -4487 8777 -4574 -8576 5921 7980 -7095 6804 9757 1960 -446 9756 9784 1908 2863 -9539 -860 9863 -9683 1374 -7696 6223 -8488 5254 -9338 262...
output:
949084958.81866029772
result:
ok found '949084958.8186603', expected '949084958.8186604', error '0.0000000'
Test #27:
score: 0
Accepted
time: 1903ms
memory: 4540kb
input:
-10000 -10000 10000 10000 2000 4185 -8886 7933 -5859 -9624 1869 5116 8492 7405 6679 -5390 8255 3698 -9149 -3048 -9443 -4420 8767 4593 8716 -186 9893 -654 9837 6586 7495 4835 8649 -6838 7288 -9548 2300 9526 2926 2929 9402 3564 9256 5371 8359 -9883 306 -9009 -4168 -6262 -7699 -7990 -5794 8096 5562 391...
output:
962273357.46533455787
result:
ok found '962273357.4653345', expected '962273357.4653347', error '0.0000000'
Test #28:
score: 0
Accepted
time: 1883ms
memory: 4596kb
input:
-10000 -10000 10000 10000 2000 -9661 -2487 -3295 -9339 6986 -7122 1152 9901 -7469 6523 -8947 4408 9954 641 -9417 -3097 -4042 9040 3350 9383 1721 -9757 5006 8565 -3414 9369 7563 6502 3795 -9153 7684 6358 2612 -9594 -2043 -9715 9761 -1880 -5955 -8019 -181 9958 8931 4398 -9859 -1329 -5689 8176 -7462 65...
output:
962638552.46351120283
result:
ok found '962638552.4635112', expected '962638552.4635112', error '0.0000000'
Test #29:
score: 0
Accepted
time: 1880ms
memory: 4640kb
input:
-10000 -10000 10000 10000 2000 8501 5255 -8375 5447 -35 -9991 1854 9816 9333 3581 8958 -4423 -6372 -7702 -293 9993 -1478 -9890 -8828 4676 1480 9885 -9766 -2134 -8209 5701 -8515 5226 -9521 -3051 -9975 -587 -6593 7507 2775 9596 -6945 7186 -368 9993 -4697 -8821 -9977 633 -8 9993 -7503 -6601 7996 5999 -...
output:
961606219.67529074848
result:
ok found '961606219.6752907', expected '961606219.6752908', error '0.0000000'
Test #30:
score: 0
Accepted
time: 1875ms
memory: 4576kb
input:
-10000 -10000 10000 10000 2000 -4177 9085 709 -9974 -9702 2419 -9989 -450 -670 -9977 -8072 5901 -7972 -6036 8638 -5038 -9624 -2714 -9108 4127 6539 -7565 5370 -8435 8466 -5320 -6576 -7533 9035 4285 -5956 -8032 9068 -4215 4025 -9154 5545 8321 7320 -6812 -2950 -9554 8695 4939 9065 4221 3229 9464 -9897 ...
output:
961547221.20827051200
result:
ok found '961547221.2082705', expected '961547221.2082705', error '0.0000000'
Test #31:
score: 0
Accepted
time: 42ms
memory: 4148kb
input:
-10000 -10000 10000 10000 256 5008 -4851 -4668 -5179 -2736 6413 5139 -4712 -2803 6384 1723 6756 -1659 -6772 6259 3072 -5832 -3821 4028 -5691 -6651 -2092 -5179 -4668 6899 1008 -5691 4028 -2317 -6576 -5179 4668 6952 531 6948 581 6789 1588 5691 -4028 -1723 6756 -1659 6772 -2136 -6637 -6576 2317 4596 52...
output:
670393490.38195448578
result:
ok found '670393490.3819544', expected '670393490.3819546', error '0.0000000'
Test #32:
score: 0
Accepted
time: 51ms
memory: 4216kb
input:
-10000 -10000 10000 10000 288 -456 -8767 6240 6175 -2600 -8385 -4796 -7353 -8740 825 -8511 -2152 575 8760 5716 -6663 -6625 -5760 -5148 -7111 -8200 3135 -6864 5473 8200 -3135 -3300 8135 8000 3615 5057 7176 -8697 1196 -4231 7692 3615 8000 -2951 -8268 2017 -8544 8200 3135 -6663 -5716 -6240 -6175 2241 8...
output:
844114805.06146862742
result:
ok found '844114805.0614686', expected '844114805.0614687', error '0.0000000'
Test #33:
score: 0
Accepted
time: 41ms
memory: 4188kb
input:
-10000 -10000 10000 10000 256 -2750 9655 -6074 7993 6970 7225 6922 -7271 -9847 -1954 6358 -7769 8030 6025 -9970 1175 -8030 6025 9050 4345 2686 -9673 6439 -7702 -9095 4250 5591 8338 9970 1175 1175 9970 5783 -8206 2750 9655 -4726 -8857 9638 -2809 -7702 -6439 9977 1114 -5095 -8650 3863 -9266 5042 -8681...
output:
965086521.74051891477
result:
ok found '965086521.7405189', expected '965086521.7405190', error '0.0000000'
Test #34:
score: 0
Accepted
time: 4ms
memory: 4116kb
input:
-10000 -10000 10000 10000 72 -9765 -7270 9547 7554 7270 -9765 -9083 -8106 9083 8106 9547 -7554 8070 -9115 -7050 9925 -8427 8786 7050 -9925 -7050 -9925 8427 -8786 -9030 8165 -8427 -8786 -9450 7675 8165 9030 9450 7675 -7554 9547 -9925 -7050 7675 9450 -7270 9765 -9115 -8070 9450 -7675 8485 -8730 9115 -...
output:
1128792509.41755811649
result:
ok found '1128792509.4175582', expected '1128792509.4175582', error '0.0000000'
Test #35:
score: 0
Accepted
time: 1ms
memory: 4076kb
input:
-10000 -10000 10000 10000 32 -9272 9271 9272 9271 9272 -9271 9599 8932 -9712 8809 -8809 -9712 8932 -9599 -8932 9599 8809 9712 9271 9272 8831 -9692 -9692 -8831 8809 -9712 -9271 9272 -9271 -9272 9271 -9272 -9712 -8809 -8831 -9692 -9599 8932 8831 9692 -9599 -8932 -8932 -9599 -8831 9692 9692 -8831 -8809...
output:
1182673090.41968799313
result:
ok found '1182673090.4196880', expected '1182673090.4196880', error '0.0000000'
Test #36:
score: 0
Accepted
time: 3ms
memory: 4084kb
input:
-10000 -10000 10000 10000 80 235 2730 -1221 5278 -1925 7550 -325 3550 8886 -2123 -1355 5610 -1595 6290 1894 917 -2170 9685 2446 453 -550 3925 -1158 5131 885 1930 -1829 7122 -2165 9530 2325 550 3925 -550 5610 -1355 8965 -2130 -1502 6011 3995 -590 -2026 8107 75 2950 -1190 5205 -1410 5755 917 1894 9530...
output:
657040895.88731241331
result:
ok found '657040895.8873124', expected '657040895.8873124', error '0.0000000'
Test #37:
score: 0
Accepted
time: 5ms
memory: 4132kb
input:
-10000 -10000 10000 10000 96 -5571 9222 6051 -5082 -1885 -90 4835 -4710 1373 -2986 1802 -3261 5715 -4990 2157 -3474 554 -2403 1085 -2790 2765 -3810 -3474 2157 9222 -5571 3293 -4074 9885 -5590 -1789 -202 -4867 5306 -4515 4310 9059 -5562 -4710 4835 -90 -1885 -5166 6387 -5581 9458 7502 -5389 -835 -1210...
output:
836413049.37692464516
result:
ok found '836413049.3769246', expected '836413049.3769248', error '0.0000000'
Test #38:
score: 0
Accepted
time: 6ms
memory: 4112kb
input:
-10000 -10000 10000 10000 96 6815 -9370 -9201 5918 705 -7290 -9502 7761 -9042 5231 321 -7078 -3265 -4470 -6154 -1153 -7078 321 2510 -8145 2390 -8095 -6879 -22 -4870 -2815 -8898 4689 -4735 -2970 -5665 -1830 -4170 -3585 4689 -8898 -177 -6786 -6081 -1258 -9294 6383 -2815 -4870 -3585 -4170 -6198 -1089 9...
output:
1059819845.87405370304
result:
ok found '1059819845.8740537', expected '1059819845.8740538', error '0.0000000'
Test #39:
score: 0
Accepted
time: 1ms
memory: 4088kb
input:
-10000 -10000 10000 10000 38 -6467 -5256 -9635 -880 -3179 -8172 -2444 -8683 -6992 -4669 -5155 -6560 -1085 -9520 -1316 -9387 -8765 -2320 -9520 -1085 -4163 -7416 -5256 -6467 -3940 -7595 -1781 -9108 -6660 -5045 -7416 -4163 -880 -9635 -7740 -3755 -2988 -8309 -9387 -1316 -5740 -6005 -8309 -2988 -9108 -17...
output:
401223489.83345463732
result:
ok found '401223489.8334546', expected '401223489.8334547', error '0.0000000'
Test #40:
score: 0
Accepted
time: 1ms
memory: 4088kb
input:
-10000 -10000 10000 10000 16 -8681 -6822 -6822 -8681 -6998 -8521 -7191 -8342 -9794 -5497 -8521 -6998 -5497 -9794 -7558 -7991 -9578 -5769 -9682 -5639 -8999 -6462 -6462 -8999 -8342 -7191 -5639 -9682 -5769 -9578 -7991 -7558
output:
181599089.45246997087
result:
ok found '181599089.4524700', expected '181599089.4524700', error '0.0000000'
Test #41:
score: 0
Accepted
time: 0ms
memory: 4000kb
input:
-10000 -10000 10000 10000 10 -9880 -6785 -7472 -9279 -7079 -9628 -7225 -9500 -7775 -9000 -9500 -7225 -9628 -7079 -9279 -7472 -6785 -9880 -9000 -7775
output:
130181610.02564660460
result:
ok found '130181610.0256466', expected '130181610.0256466', error '0.0000000'
Test #42:
score: 0
Accepted
time: 0ms
memory: 4076kb
input:
-10000 -10000 10000 10000 4 -9480 -9015 -9900 -8575 -8575 -9900 -9015 -9480
output:
55539550.12437227800
result:
ok found '55539550.1243723', expected '55539550.1243723', error '0.0000000'
Test #43:
score: 0
Accepted
time: 0ms
memory: 4080kb
input:
-10000 -10000 10000 10000 4 -10000 -10000 10000 -10000 -10000 10000 10000 10000
output:
1256637061.43591719086
result:
ok found '1256637061.4359171', expected '1256637061.4359174', error '0.0000000'
Test #44:
score: 0
Accepted
time: 1611ms
memory: 4508kb
input:
-10000 -10000 10000 10000 2000 2044 2044 -8714 -8714 -918 -918 2587 2587 -6059 -6059 5193 5193 -9894 -9894 -4609 -4609 55 55 2687 2687 3106 3106 8183 8183 2735 2735 -2950 -2950 579 579 -1338 -1338 -6756 -6756 42 42 -169 -169 9040 9040 -9228 -9228 -4915 -4915 -3211 -3211 7013 7013 4183 4183 5113 5113...
output:
1151330698.42148756131
result:
ok found '1151330698.4214876', expected '1151330698.4214876', error '0.0000000'
Test #45:
score: 0
Accepted
time: 1601ms
memory: 4596kb
input:
-10000 -10000 10000 10000 2000 -6538 -6538 5148 5148 9850 9850 7282 7282 -2282 -2282 -5028 -5028 4922 4922 9956 9956 5469 5469 2292 2292 -6534 -6534 7401 7401 4104 4104 8427 8427 -6193 -6193 -9024 -9024 7928 7928 -2241 -2241 8125 8125 -4976 -4976 -3666 -3666 5405 5405 -5271 -5271 -9353 -9353 -8746 -...
output:
1148135739.93334824569
result:
ok found '1148135739.9333482', expected '1148135739.9333484', error '0.0000000'
Test #46:
score: 0
Accepted
time: 1617ms
memory: 4596kb
input:
-10000 -10000 10000 10000 2000 9476 9476 -9869 -9869 8080 8080 8383 8383 9669 9669 -8486 -8486 8674 8674 -9236 -9236 8525 8525 9227 9227 -8259 -8259 -9401 -9401 -9303 -9303 8737 8737 -9672 -9672 -8361 -8361 -8521 -8521 -9700 -9700 -9360 -9360 -9854 -9854 -8582 -8582 -9997 -9997 8518 8518 -9861 -9861...
output:
980285475.08093034721
result:
ok found '980285475.0809304', expected '980285475.0809305', error '0.0000000'
Test #47:
score: 0
Accepted
time: 1634ms
memory: 4544kb
input:
-10000 -10000 10000 10000 2000 -1646 -1646 742 742 1462 1462 657 657 -1336 -1336 622 622 -1498 -1498 -1007 -1007 1219 1219 260 260 1951 1951 -1476 -1476 713 713 878 878 403 403 1542 1542 1878 1878 -1959 -1959 244 244 384 384 -1830 -1830 -1536 -1536 1554 1554 1423 1423 -1744 -1744 -1731 -1731 1117 11...
output:
170735086.16425889492
result:
ok found '170735086.1642589', expected '170735086.1642589', error '0.0000000'
Test #48:
score: 0
Accepted
time: 1636ms
memory: 4584kb
input:
-10000 -10000 10000 10000 2000 -4431 -4431 -790 -790 -7329 -7329 6810 6810 -489 -489 -6874 -6874 2089 2089 4399 4399 4905 4905 4808 4808 -4367 -4367 -675 -675 6348 6348 4880 4880 -4601 -4601 5023 5023 -4750 -4750 2922 2922 -3394 -3394 -4671 -4671 3330 3330 -6127 -6127 -6296 -6296 -6393 -6393 -5535 -...
output:
840638278.50862752710
result:
ok found '840638278.5086275', expected '840638278.5086277', error '0.0000000'
Test #49:
score: 0
Accepted
time: 1620ms
memory: 4600kb
input:
-10000 -10000 10000 10000 2000 -10000 10000 10000 -10000 498 498 -644 -644 -1202 -1202 617 617 524 524 1312 1312 1070 1070 -816 -816 756 756 -1934 -1934 1228 1228 -1336 -1336 -1066 -1066 705 705 -1446 -1446 1113 1113 -1038 -1038 -638 -638 1730 1730 282 282 1876 1876 -1613 -1613 158 158 162 162 1195 ...
output:
1156500882.99146245210
result:
ok found '1156500882.9914625', expected '1156500882.9914625', error '0.0000000'
Test #50:
score: 0
Accepted
time: 1592ms
memory: 4660kb
input:
-10000 -10000 10000 10000 2000 -10000 10000 10000 -10000 2590 2590 2306 2306 3693 3693 1106 1106 483 483 936 936 34 34 820 820 3274 3274 -2947 -2947 -2526 -2526 -2646 -2646 2223 2223 1411 1411 -2181 -2181 -1664 -1664 -1221 -1221 -2188 -2188 1581 1581 -3881 -3881 2733 2733 1613 1613 973 973 3437 3437...
output:
1185552635.41578819789
result:
ok found '1185552635.4157882', expected '1185552635.4157882', error '0.0000000'
Test #51:
score: 0
Accepted
time: 1904ms
memory: 4592kb
input:
-10000 -10000 10000 10000 2000 0 0 -8050 -5931 -6443 7646 -4197 -9076 -6478 -7617 -4838 -8751 552 -9984 -7429 6693 -1481 9889 -5775 -8163 203 -9997 9728 2314 -2339 -9722 -9615 2745 3530 9355 9951 987 3465 -9380 3565 9342 2032 9791 4728 8811 3982 -9172 -9375 -3478 71 9999 -9420 -3354 9588 -2838 9458 ...
output:
982102595.49437071575
result:
ok found '982102595.4943707', expected '982102595.4943708', error '0.0000000'
Test #52:
score: 0
Accepted
time: 0ms
memory: 4052kb
input:
9999 9999 10000 10000 2 -10000 10000 10000 -10000
output:
41887.90204986128
result:
ok found '41887.9020499', expected '41887.9020479', error '0.0000000'
Extra Test:
score: 0
Extra Test Passed