QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#734430 | #9576. Ordainer of Inexorable Judgment | ucup-team3931 | WA | 18ms | 4192kb | C++14 | 19.9kb | 2024-11-11 10:27:26 | 2024-11-11 10:27:28 |
Judging History
你现在查看的是最新测评结果
- [2024-12-23 14:23:26]
- hack成功,自动添加数据
- (/hack/1303)
- [2024-12-06 11:32:56]
- hack成功,自动添加数据
- (/hack/1271)
- [2024-11-14 21:58:28]
- hack成功,自动添加数据
- (/hack/1181)
- [2024-11-11 10:27:26]
- 提交
answer
#include <bits/stdc++.h>
#define eb emplace_back
#define mp make_pair
#define fi first
#define se second
#define F(i, x, y) for (int i = (x); i <= (y); i++)
#define R(i, x, y) for (int i = (x); i >= (y); i--)
#define FIO(FILE) freopen(FILE".in", "r", stdin), freopen(FILE".out", "w", stdout)
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
bool Mbe;
namespace big{
using u32 = unsigned int;
using i64 = long long;
using u64 = unsigned long long;
struct BigDecimal {
private:
int _size;
int *_digits;
public:
static const int IDLE_DIGITS = 13;
static const int MAX_BITS = 30;
static const int MAX_VALUE = (1 << MAX_BITS);
static const int MAX_MASK = (1 << MAX_BITS) - 1;
static const int conv_width = floor(log10(MAX_VALUE - 1));
static const i64 conv_pow = pow(10, conv_width);
static const int DIG = 50;
static const int DLEN = ceil((DIG + IDLE_DIGITS) * log2(10) / MAX_BITS);
int long_size(i64 x) {
int res = 1; x = abs(x);
while (x >>= MAX_BITS)
++ res;
return res;
}
void load_long(i64 x) {
if (x == 0)
_size = 0, _digits = nullptr;
else {
_size = long_size(x) + DLEN;
_digits = new int[_size];
memset(_digits, 0, sizeof(int) * _size);
if (x < 0) _size = -_size;
int ptr = DLEN; x = abs(x);
while (x) {
_digits[ptr ++] = x & MAX_MASK;
x >>= MAX_BITS;
}
}
}
BigDecimal(): _size(0), _digits(nullptr) {}
BigDecimal(int x) { load_long(x); }
BigDecimal(i64 x) { load_long(x); }
BigDecimal(const char *str) {
bool flg = false;
if (*str == '-')
flg = true, ++ str;
const char *int_part = str;
while (*int_part != '\0' && *int_part != '.')
++ int_part;
int int_len = int_part - str;
_size = DLEN + ceil(int_len * log2(10) / MAX_BITS);
_digits = new int[_size];
memset(_digits, 0, sizeof(int) * _size);
static i64 _pow10[conv_width + 1] = {0};
if (_pow10[0] == 0) {
_pow10[0] = 1;
for (int i = 1; i <= conv_width; i ++)
_pow10[i] = _pow10[i - 1] * 10;
}
int k, cur_width = 0, top_pos = DLEN;
i64 cur_num = 0;
while (str < int_part) {
k = (*str) ^ 48;
++ cur_width;
cur_num = cur_num * 10 + k;
if ((++ str) == int_part || cur_width == conv_width) {
for (int i = DLEN; i < top_pos; i ++) {
cur_num += _pow10[cur_width] * _digits[i];
_digits[i] = cur_num & MAX_MASK;
cur_num >>= MAX_BITS;
}
while (cur_num) {
_digits[top_pos ++] = cur_num & MAX_MASK;
cur_num >>= MAX_BITS;
}
cur_width = 0;
}
}
if (*int_part == '.') {
const char *dec_part = ++ int_part;
const char *end = dec_part;
while (*end != '\0')
++ end;
if (dec_part != end) {
int dec_len = ceil((double)(end - dec_part) / conv_width);
int *assist = new int[dec_len];
memset(assist, 0, sizeof(int) * dec_len);
for (int i = 0; i < dec_len; i ++) {
for (int j = conv_width - 1; j >= 0; j --) {
if (*dec_part == '\0')
break;
assist[i] += _pow10[j] * ((*dec_part++) ^ 48);
}
}
for (int i = DLEN - 1; i >= 0; i --) {
i64 carry = 0;
for (int j = dec_len - 1; j >= 0; j --) {
carry += (i64)MAX_VALUE * assist[j];
assist[j] = carry % conv_pow;
carry /= conv_pow;
}
_digits[i] = carry;
}
if (assist[0] >= conv_pow / 2) {
for (int i = 0; i < _size; i ++) {
if (++ _digits[i] >= MAX_VALUE)
_digits[i] = 0;
else
break;
}
}
delete[] assist;
}
}
if (flg)
_size = -_size;
normalize();
}
~BigDecimal() {
delete[] _digits;
}
void copy_from_other(const BigDecimal &bd) {
_size = bd._size;
if (_digits != nullptr)
delete[] _digits, _digits = nullptr;
if (_size != 0) {
_digits = new int[abs(_size)];
memcpy(_digits, bd._digits, sizeof(int) * abs(_size));
}
}
BigDecimal(const BigDecimal &bd): _digits(nullptr) {
copy_from_other(bd);
}
BigDecimal &operator=(const BigDecimal &bd) {
if (this != &bd)
copy_from_other(bd);
return *this;
}
void swap(BigDecimal &bd) {
std::swap(_size, bd._size);
std::swap(_digits, bd._digits);
}
static BigDecimal epsilon() {
BigDecimal res;
res._size = 1;
res._digits = new int[1];
res._digits[0] = 1;
return res;
}
int size() const { return abs(_size); }
int int_size() const { return std::max(abs(_size) - DLEN, 0); }
bool is_zero() const { return _size == 0; }
bool is_nega() const { return _size < 0; }
bool is_posi() const { return _size > 0; }
void negate() { _size = -_size; }
void normalize() {
int i = size();
while (i != 0 && _digits[i - 1] == 0)
-- i;
_size = (_size >= 0 ? i : -i);
}
void align(int new_size) {
if (_size == 0)
return;
if (new_size <= 0) {
_size = 0;
delete[] _digits;
_digits = nullptr;
return;
}
int *temp = new int[new_size];
memset(temp, 0, sizeof(int) * new_size);
int valid = std::min(size(), new_size);
memcpy(temp + std::max(0, new_size - valid)
, _digits + std::max(0, size() - valid)
, sizeof(int) * valid);
if (is_nega())
new_size = -new_size;
_size = new_size;
if (_digits != nullptr)
delete[] _digits;
_digits = temp;
}
void print(int MAX_DIG = DIG) {
if (is_nega())
putchar('-');
int work_len = std::max((int)DLEN, size());
int *assist = new int[work_len + 1];
memset(assist, 0, sizeof(int) * (work_len + 1));
if (size())
memcpy(assist, _digits, sizeof(int) * size());
char *dec_result = new char[MAX_DIG + 1];
for (int i = 0; i <= MAX_DIG; i += conv_width) {
i64 carry = 0;
for (int j = 0; j < DLEN; j ++) {
carry += conv_pow * assist[j];
assist[j] = carry & MAX_MASK;
carry >>= MAX_BITS;
}
for (int j = 0; j < conv_width; j ++) {
int pos = i + conv_width - 1 - j;
if (pos <= MAX_DIG)
dec_result[pos] = ('0' + carry % 10);
carry /= 10;
}
}
if (dec_result[MAX_DIG] >= '5') {
bool carry = true;
for (int i = MAX_DIG - 1; i >= 0 && carry; i --) {
if (dec_result[i] == '9')
dec_result[i] = '0';
else
++ dec_result[i], carry = false;
}
if (carry) {
for (int i = DLEN; i <= work_len; i ++) {
if (++ assist[i] >= MAX_VALUE)
assist[i] = 0;
else
break;
}
}
}
int top_pos = work_len;
while (top_pos >= DLEN && assist[top_pos] == 0)
-- top_pos;
if (top_pos == DLEN - 1)
putchar('0');
else {
int estimate_len = ceil((top_pos - DLEN + 1) * log10(MAX_VALUE));
estimate_len = (estimate_len + conv_width - 1) / conv_width * conv_width;
char *int_result = new char[estimate_len];
for (int i = 0; i < estimate_len; i += conv_width) {
i64 carry = 0;
for (int j = top_pos; j >= (int)DLEN; j --) {
carry = (carry << MAX_BITS) ^ assist[j];
assist[j] = carry / conv_pow;
carry = carry % conv_pow;
}
while (top_pos >= DLEN && assist[top_pos] == 0)
-- top_pos;
for (int j = 0; j < conv_width; j ++)
int_result[i + j] = ('0' + carry % 10), carry /= 10;
}
bool printed = false;
for (int i = estimate_len - 1; i >= 0; i --)
if (printed |= int_result[i] != '0')
putchar(int_result[i]);
delete[] int_result;
}
putchar('.');
for (int i = 0; i < MAX_DIG; i ++)
putchar(dec_result[i]);
delete[] dec_result;
}
friend int compare(const BigDecimal &a, const BigDecimal &b) {
if (a._size != b._size)
return a._size - b._size;
for (int i = a.size() - 1; i >= 0; i --) if (a._digits[i] != b._digits[i])
return a._size > 0 ? a._digits[i] - b._digits[i] : b._digits[i] - a._digits[i];
return 0;
}
friend bool operator<(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) < 0;
}
friend bool operator>(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) > 0;
}
friend bool operator<=(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) <= 0;
}
friend bool operator>=(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) >= 0;
}
friend bool operator==(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) == 0;
}
friend bool operator!=(const BigDecimal &a, const BigDecimal &b) {
return compare(a, b) != 0;
}
void mul_num(i64 x) {
if (is_zero())
return;
if (x < 0) x = -x, negate();
int l = size();
(is_nega() ? _size -= long_size(x) : _size += long_size(x));
int *new_num = new int[size()];
u64 carry = 0, low = x & MAX_MASK, high = x >> MAX_BITS;
int i = 0;
for (; i < l; i ++) {
carry += low * _digits[i];
new_num[i] = carry & MAX_MASK;
carry >>= MAX_BITS;
carry += high * _digits[i];
}
while (carry) {
new_num[i ++] = carry & MAX_MASK;
carry >>= MAX_BITS;
}
for (; i < size(); i ++)
new_num[i] = 0;
delete[] _digits;
_digits = new_num;
normalize();
}
friend BigDecimal operator*(const BigDecimal &a, const i64 x) {
BigDecimal res = a;
res.mul_num(x);
return res;
}
friend BigDecimal operator*(const BigDecimal &a, const int x) {
BigDecimal res = a;
res.mul_num(x);
return res;
}
void div_num(i64 x) {
if (x < 0) x = -x, negate();
i64 carry = 0;
for (int i = size() - 1; i >= 0; i --) {
carry = (carry << MAX_BITS) ^ _digits[i];
_digits[i] = carry / x;
carry %= x;
}
normalize();
}
friend BigDecimal operator/(const BigDecimal &a, const i64 x) {
BigDecimal res = a;
res.div_num(x);
return res;
}
friend BigDecimal operator/(const BigDecimal &a, const int x) {
BigDecimal res = a;
res.div_num(x);
return res;
}
friend BigDecimal &operator<<=(BigDecimal &a, const int x) {
a.align(a.size() + x);
return a;
}
friend BigDecimal &operator>>=(BigDecimal &a, const int x) {
a.align(a.size() - x);
return a;
}
friend BigDecimal num_add(const BigDecimal &a, const BigDecimal &b) {
if (a.size() < b.size())
return num_add(b, a);
BigDecimal res(0);
res._size = a.size() + 1;
res._digits = new int[res._size];
int i = 0, carry = 0;
for (; i < b.size(); i ++) {
carry = carry + a._digits[i] + b._digits[i];
res._digits[i] = carry & MAX_MASK;
carry >>= MAX_BITS;
}
for (; i < a.size(); i ++) {
carry = carry + a._digits[i];
res._digits[i] = carry & MAX_MASK;
carry >>= MAX_BITS;
}
res._digits[i] = carry;
res.normalize();
return res;
}
friend BigDecimal num_sub_basic(const BigDecimal &a, const BigDecimal &b) {
BigDecimal res(0);
res._size = a.size();
res._digits = new int[res._size];
u32 borrow = 0;
int i = 0;
for (; i < b.size(); i ++) {
borrow = a._digits[i] - borrow - b._digits[i];
res._digits[i] = borrow & MAX_MASK;
borrow >>= MAX_BITS;
borrow &= 1;
}
for (; i < a.size(); i ++) {
borrow = a._digits[i] - borrow;
res._digits[i] = borrow & MAX_MASK;
borrow >>= MAX_BITS;
borrow &= 1;
}
res.normalize();
return res;
}
friend BigDecimal num_sub(const BigDecimal &a, const BigDecimal &b) {
if (a.size() > b.size())
return num_sub_basic(a, b);
if (a.size() < b.size()) {
BigDecimal res = num_sub_basic(b, a);
res.negate();
return res;
}
for (int i = a.size() - 1; i >= 0; i --) if (a._digits[i] != b._digits[i]) {
if (a._digits[i] < b._digits[i]) {
BigDecimal res = num_sub_basic(b, a);
res.negate();
return res;
}
else
return num_sub_basic(a, b);
}
return BigDecimal();
}
friend BigDecimal operator-(const BigDecimal &a) {
BigDecimal res = a;
res.negate();
return res;
}
friend BigDecimal operator+(const BigDecimal &a, const BigDecimal &b) {
if (a.is_zero())
return b;
if (b.is_zero())
return a;
if (a.is_nega()) {
if (b.is_nega()) {
BigDecimal res = num_add(a, b);
res.negate();
return res;
}
return num_sub(b, a);
}
if (b.is_nega())
return num_sub(a, b);
return num_add(a, b);
}
friend BigDecimal operator-(const BigDecimal &a, const BigDecimal &b) {
if (a.is_zero())
return - b;
if (b.is_zero())
return a;
if (a.is_nega()) {
BigDecimal res = (b.is_nega()? num_sub(a, b) : num_add(a, b));
res.negate();
return res;
}
if (b.is_nega())
return num_add(a, b);
return num_sub(a, b);
}
friend BigDecimal operator*(const BigDecimal &a, const BigDecimal &b) {
if (a.size() == 0 || b.size() == 0)
return BigDecimal();
BigDecimal res(0);
res._size = std::max(0, a.size() + b.size() - a.DLEN) + 1;
res._digits = new int[res._size];
i64 current = 0, carry = 0;
for (int tot = - a.DLEN; tot < res._size; tot ++) {
for (int i = std::max(tot + a.DLEN - b.size() + 1, 0); i < a.size() && i <= tot + a.DLEN; i ++) {
current += (i64)a._digits[i] * b._digits[tot + a.DLEN - i];
if (current >> 60) {
carry += current >> MAX_BITS;
current &= MAX_MASK;
}
}
carry += current >> MAX_BITS;
current &= MAX_MASK;
if (tot >= 0)
res._digits[tot] = current;
current = carry;
carry = 0;
}
if (a.is_nega() ^ b.is_nega())
res.negate();
res.normalize();
return res;
}
void div2() {
int carry = 0;
for (int i = size() - 1; i >= 0; i --) {
carry = (carry << MAX_BITS) ^ _digits[i];
_digits[i] = carry >> 1;
carry &= 1;
}
normalize();
}
friend BigDecimal operator/(const BigDecimal &a, const BigDecimal &b) {
if (a.is_zero())
return BigDecimal();
BigDecimal ta = a, tb = b, res(0);
int len = ta.size() - tb.size() + a.DLEN + 1;
if (len <= 0)
return res;
res._size = len;
res._digits = new int[len];
ta._size = abs(ta._size);
tb._size = abs(tb._size);
tb.align(ta.size() + 1);
for (int i = len - 1; i >= 0; i --) {
int num = 0;
for (int j = 0; j < MAX_BITS; j ++) {
tb.div2(); num <<= 1;
if (ta >= tb) {
ta = num_sub(ta, tb);
num ^= 1;
}
}
res._digits[i] = num;
}
if (a.is_nega() ^ b.is_nega())
res.negate();
res.normalize();
return res;
}
BigDecimal integer() const {
BigDecimal res = *this;
for (int i = 0; i < DLEN && i < size(); i ++)
res._digits[i] = 0;
res.normalize();
return res;
}
BigDecimal decimal() const {
if (is_zero())
return BigDecimal();
int nlen = std::min(DLEN, size());
BigDecimal res(0);
res._size = nlen;
res._digits = new int[nlen];
memcpy(res._digits, _digits, sizeof(int) * nlen);
if (is_nega())
res.negate();
return res;
}
friend BigDecimal abs(BigDecimal x) {
x._size = std::abs(x._size);
return x;
}
};
const BigDecimal _ln2("0.693147180559945309417232121458176568075500134360255254120680");
const BigDecimal _pi("3.141592653589793238462643383279502884197169399375105820974944");
const BigDecimal _sqrt2("1.414213562373095048801688724209698078569671875376948073176680");
const BigDecimal _one("1");
const BigDecimal _pi_2 = _pi * 2;
const BigDecimal _pi_half = _pi / 2;
const BigDecimal _eps = BigDecimal::epsilon();
BigDecimal exp(BigDecimal x) {
BigDecimal ans = 1, cnt = 1;
for (int i = 1; ; i ++) {
cnt = cnt * x / i;
if (cnt.is_zero())
break;
ans = ans + cnt;
}
return ans;
}
BigDecimal sqrt(BigDecimal x) {
BigDecimal cur = x, las = 0;
do {
las.swap(cur);
cur = (las + x / las) / 2;
} while (abs(cur - las) > _eps);
return cur;
}
BigDecimal ln(BigDecimal x) {
if (x < _one)
return -ln(_one / x);
BigDecimal coef = 0;
int num = x.int_size();
if (num > 1)
x >>= num - 1, coef = _ln2 * ((long long)(num - 1) * x.MAX_BITS);
while (x > _sqrt2)
x.div2(), coef = coef + _ln2;
x = (x - _one) / (x + _one);
BigDecimal cnt = x * 2, res = cnt;
x = x * x;
for (int i = 3; ; i += 2) {
cnt = cnt * x;
BigDecimal p = cnt / i;
if (p.is_zero())
break;
res = res + p;
}
return res + coef;
}
BigDecimal pow(BigDecimal a, BigDecimal x) {
return exp(ln(a) * x);
}
BigDecimal sin(BigDecimal x) {
if (x.is_nega())
return -sin(-x);
if (x >= _pi_2)
x = x - (x / _pi_2).integer() * _pi_2;
BigDecimal res = x, cur = x;
x = x * x;
for (long long i = 3; ; i += 2) {
cur = cur * x / (i * (i - 1));
if (cur.is_zero())
break;
cur.negate();
res = res + cur;
}
return res;
}
BigDecimal cos(BigDecimal x) {
if (x.is_nega())
return cos(-x);
if (x >= _pi_2)
x = x - (x / _pi_2).integer() * _pi_2;
BigDecimal res = 1, cur = 1;
x = x * x;
for (long long i = 2; ; i += 2) {
cur = cur * x / BigDecimal(i * (i - 1));
cur.negate();
if (cur.is_zero())
break;
res = res + cur;
}
return res;
}
BigDecimal tan(BigDecimal x) {
return sin(x) / cos(x);
}
BigDecimal atan(BigDecimal x) {
static BigDecimal comp("0.1");
if (x.is_nega())
return - atan(-x);
if (x > _one)
return _pi_half - atan(_one / x);
if (x >= comp)
return atan((sqrt(_one + x * x) - _one) / x) * 2;
BigDecimal cnt = x, res = x;
x = x * x; x.negate();
for (int i = 3; ; i += 2) {
cnt = cnt * x;
BigDecimal p = cnt / i;
if (p.is_zero())
break;
res = res + p;
}
return res;
}
BigDecimal asin(BigDecimal x) {
return atan(x / sqrt(_one - x * x));
}
BigDecimal acos(BigDecimal x) {
return _pi_half - asin(x);
}
BigDecimal atan2(BigDecimal y, BigDecimal x) {
if (x.is_posi())
return atan(y / x);
if (x.is_zero()) {
if (y.is_nega())
return - _pi_half;
return _pi_half;
}
if (y.is_nega())
return atan(y / x) - _pi;
return atan(y / x) + _pi;
}
}
using namespace big;
#define int long long
#define db BigDecimal
#define pc putchar
struct vc {
db x, y;
vc () { }
vc (db _x, db _y) : x(_x), y(_y) { }
};
const int N = 105;
const db Pi = acos(db(-1));
db Eps = 1;
int n, m, _x, _y, r, t;
db L[N], R[N], sum;
vector<int> tp;
db the(vc p) {
db res = atan(p.y / p.x);
if (p.x < 0 && p.y >= 0) {
res = res + Pi;
}
if (p.x < 0 && p.y < 0) {
res = res + Pi;
}
if (p.x >= 0 && p.y < 0) {
res = res + 2 * Pi;
}
return res;
}
db qry(db tm) {
if (L[*tp.begin()] > tm) {
return 0;
}
db cr = L[*tp.begin()], res = 0;
for (int i : tp) {
db l = L[i], r = R[i];
if (r < cr) {
continue;
}
if (l > tm) {
return res;
}
if (l <= cr) {
res = res + r - cr, cr = r;
} else {
res = res + r - l, cr = r;
}
if (cr > tm) {
res = res - cr + tm;
return res;
}
}
return res;
}
const double PI = acos(-1);
void solve() {
cin >> n >> _x >> _y >> r >> t;
int T = 15;
while (T--) {
Eps = Eps / (db)10;
}
db mx = -2 * Pi, mn = 4 * Pi, mnn = 4 * Pi, mxx = -2 * Pi;
vector<pi> pt;
F (i, 1, n) {
int x, y;
cin >> x >> y;
pt.eb(x, y);
}
for (pi _ : pt) {
int x = _.fi, y = _.se;
db dis = x * x + y * y; dis = sqrt(dis);
vc u = vc(x / dis, y / dis);
db ang = asin(r / dis);
vc p = vc(u.x * cos(ang) - u.y * sin(ang), u.x * sin(ang) + u.y * cos(ang));
vc q = vc(u.x * cos(-ang) - u.y * sin(-ang), u.x * sin(-ang) + u.y * cos(-ang));
db L = the(p), R = the(q);
if (abs(L - 2 * Pi) <= Eps) {
L = 0;
}
if (abs(R - 2 * Pi) <= Eps) {
R = 0;
}
swap(L, R);
if (L <= R) {
mn = min(mn, L);
mx = max(mx, R);
} else {
mxx = max(mxx, R);
mnn = min(mnn, L);
}
}
if (mn <= mx) {
m++;
L[m] = mn, R[m] = mx;
}
if (mxx >= 0) {
m++;
L[m] = 0, R[m] = mxx;
}
if (mnn <= 2 * Pi) {
m++;
L[m] = mnn, R[m] = 2 * Pi;
}
F (i, 1, m) {
tp.eb(i);
}
sort(tp.begin(), tp.end(), [](int &x, int &y) {
return L[x] < L[y];
});
db _t = the(vc(_x, _y));
db __t = t + _t;
int len = floor(t / (2 * PI));
if (__t - len * 2 * Pi > 2 * Pi) {
len++;
}
(qry(2 * Pi) * len + qry(__t - len * 2 * Pi) - qry(_t)).print(10);
}
bool Med;
signed main() {
// FIO("");
// ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cerr << (&Mbe - &Med) / 1048576.0 << " MB\n";
int T = 1;
// cin >> T;
while (T--) solve();
cerr << (int)(1e3 * clock() / CLOCKS_PER_SEC) << " ms\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 4116kb
input:
3 1 0 1 1 1 2 2 1 2 2
output:
1.0000000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3992kb
input:
3 1 0 1 2 1 2 2 1 2 2
output:
1.5707963268
result:
ok found '1.5707963', expected '1.5707963', error '0.0000000'
Test #3:
score: 0
Accepted
time: 3ms
memory: 4116kb
input:
3 1 0 1 10000 1 2 2 1 2 2
output:
2500.7077522575
result:
ok found '2500.7077523', expected '2500.7077523', error '0.0000000'
Test #4:
score: 0
Accepted
time: 2ms
memory: 4104kb
input:
3 10000 10000 1 10000 10000 9999 10000 10000 9999 10000
output:
0.3842413003
result:
ok found '0.3842413', expected '0.3842413', error '0.0000000'
Test #5:
score: 0
Accepted
time: 3ms
memory: 4036kb
input:
3 -10000 -10000 10000 10000 -10000 -9999 -10000 -10000 -9999 -10000
output:
2500.2406700096
result:
ok found '2500.2406700', expected '2500.2406700', error '0.0000000'
Test #6:
score: 0
Accepted
time: 0ms
memory: 4072kb
input:
4 1 0 1 10000 -2 3400 -4 10000 -4 -10000 -2 -3400
output:
4999.2191154087
result:
ok found '4999.2191154', expected '4999.2191154', error '0.0000000'
Test #7:
score: 0
Accepted
time: 2ms
memory: 3996kb
input:
4 1 0 1 10000 -2 3300 -4 10000 -4 -10000 -2 -3300
output:
4999.2003918548
result:
ok found '4999.2003919', expected '4999.2003919', error '0.0000000'
Test #8:
score: 0
Accepted
time: 4ms
memory: 4016kb
input:
4 -3040 2716 2147 2 -9033 -8520 -8999 -8533 -8988 -8511 -9004 -8495
output:
0.3508300583
result:
ok found '0.3508301', expected '0.3508301', error '0.0000000'
Test #9:
score: 0
Accepted
time: 3ms
memory: 4036kb
input:
3 8168 -766 1549 1256 -3951 -6425 -3874 -6439 -3911 -6389
output:
84.8328611610
result:
ok found '84.8328612', expected '84.8328612', error '0.0000000'
Test #10:
score: 0
Accepted
time: 9ms
memory: 4184kb
input:
8 2977 -3175 8766 2 -4868 7759 -4867 7925 -4867 7950 -4886 7952 -4979 7953 -5048 7877 -5003 7761 -4936 7759
output:
0.3278606469
result:
ok found '0.3278606', expected '0.3278606', error '0.0000000'
Test #11:
score: 0
Accepted
time: 3ms
memory: 4192kb
input:
13 -1715 -4640 267 8651 272 6659 264 6660 208 6664 108 6625 107 6621 93 6564 90 6551 90 6485 124 6474 219 6477 283 6525 288 6591 286 6657
output:
153.5896227847
result:
ok found '153.5896228', expected '153.5896228', error '0.0000000'
Test #12:
score: 0
Accepted
time: 7ms
memory: 4120kb
input:
8 -9743 -7629 775 7 -194 981 -191 1720 -193 1845 -705 1929 -959 1950 -1131 1894 -1151 1604 -1031 1020
output:
2.0460062044
result:
ok found '2.0460062', expected '2.0460062', error '0.0000000'
Test #13:
score: 0
Accepted
time: 9ms
memory: 4120kb
input:
9 -6770 -1426 3491 1918 -2118 2886 -2063 3245 -2122 3709 -2129 3737 -2850 3718 -2984 3650 -3042 3462 -3028 2972 -2688 2888
output:
822.2411849637
result:
ok found '822.2411850', expected '822.2411850', error '0.0000000'
Test #14:
score: 0
Accepted
time: 13ms
memory: 3936kb
input:
12 1616 -7384 5256 10 -5607 2623 -5838 2843 -6117 2986 -6592 3169 -7129 3120 -7334 3069 -7406 2295 -7369 1712 -7091 1287 -6312 1252 -5596 1592 -5457 2088
output:
3.0387653771
result:
ok found '3.0387654', expected '3.0387654', error '0.0000000'
Test #15:
score: 0
Accepted
time: 8ms
memory: 3980kb
input:
10 -4546 5056 639 2996 4851 -3506 6078 -3725 6629 -3674 6775 -3296 6743 -2137 6585 -1866 5334 -1837 4950 -2020 4873 -2260 4852 -3240
output:
262.4239690789
result:
ok found '262.4239691', expected '262.4239691', error '0.0000000'
Test #16:
score: 0
Accepted
time: 17ms
memory: 4068kb
input:
20 4847 -6818 2502 2 -2164 -3844 -2453 -3826 -4654 -3818 -5073 -3829 -5212 -3833 -5828 -3921 -5889 -6065 -5896 -6716 -5877 -7349 -5855 -7457 -5619 -7711 -5485 -7786 -3743 -7809 -2345 -7747 -2075 -7682 -1960 -7364 -1900 -7015 -1901 -6391 -1922 -4091 -1968 -4028
output:
0.0000000000
result:
ok found '0.0000000', expected '0.0000000', error '-0.0000000'
Test #17:
score: 0
Accepted
time: 12ms
memory: 4040kb
input:
14 -1792 -5751 2349 4072 -3697 -4432 -4268 -4431 -6475 -4433 -7140 -4464 -7320 -4526 -7354 -5333 -7357 -5731 -7366 -7076 -7346 -7868 -7218 -8415 -4044 -8407 -3412 -8398 -3388 -7296 -3391 -4497
output:
758.9667683479
result:
ok found '758.9667683', expected '758.9667683', error '0.0000000'
Test #18:
score: 0
Accepted
time: 17ms
memory: 4068kb
input:
23 8820 -5943 927 1 -1319 -4435 -1321 -297 -1361 -149 -1379 -119 -1619 13 -6579 12 -7090 11 -7184 -5 -7209 -18 -7277 -62 -7316 -672 -7316 -5095 -7295 -5877 -7273 -5921 -7250 -5955 -6569 -5967 -5927 -5975 -4278 -5977 -2646 -5978 -1477 -5965 -1472 -5962 -1404 -5892 -1334 -5809
output:
0.0000000000
result:
ok found '0.0000000', expected '0.0000000', error '-0.0000000'
Test #19:
score: -100
Wrong Answer
time: 18ms
memory: 4136kb
input:
22 -5664 7523 2588 8083 3456 2960 3446 2865 3433 2724 3432 615 3434 -1360 3446 -2929 3602 -2969 6204 -2972 8409 -2972 9227 -2969 9329 -2929 9375 -2890 9426 -2575 9432 2499 9432 2620 9390 2954 9386 2968 9277 3023 8340 3026 6809 3026 3634 3020 3600 3018
output:
8083.0000000000
result:
wrong answer 1st numbers differ - expected: '3378.3117401', found: '8083.0000000', error = '1.3926152'