QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#116805#4886. Best Sunhos_lyricAC ✓1663ms44072kbC++147.6kb2023-06-30 07:53:182023-06-30 07:53:18

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-30 07:53:18]
  • 评测
  • 测评结果:AC
  • 用时:1663ms
  • 内存:44072kb
  • [2023-06-30 07:53:18]
  • 提交

answer

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }


int sig(Int r) { return (r < 0) ? -1 : (r > 0) ? +1 : 0; }
struct Pt {
  Int x, y;
  Pt() : x(0), y(0) {}
  Pt(Int x_, Int y_) : x(x_), y(y_) {}
  Pt operator+(const Pt &a) const { return Pt(x + a.x, y + a.y); }
  Pt operator-(const Pt &a) const { return Pt(x - a.x, y - a.y); }
  Pt operator*(const Pt &a) const { return Pt(x * a.x - y * a.y, x * a.y + y * a.x); }
  Pt operator+() const { return Pt(+x, +y); }
  Pt operator-() const { return Pt(-x, -y); }
  Pt operator*(const Int &k) const { return Pt(x * k, y * k); }
  Pt operator/(const Int &k) const { return Pt(x / k, y / k); }
  friend Pt operator*(const Int &k, const Pt &a) { return Pt(k * a.x, k * a.y); }
  Pt &operator+=(const Pt &a) { x += a.x; y += a.y; return *this; }
  Pt &operator-=(const Pt &a) { x -= a.x; y -= a.y; return *this; }
  Pt &operator*=(const Pt &a) { return *this = *this * a; }
  Pt &operator*=(const Int &k) { x *= k; y *= k; return *this; }
  Int abs2() const { return x * x + y * y; }
  Int dot(const Pt &a) const { return x * a.x + y * a.y; }
  Int det(const Pt &a) const { return x * a.y - y * a.x; }
  bool operator==(const Pt &a) const { return (x == a.x && y == a.y); }
  bool operator<(const Pt &a) const { return (x < a.x || (x == a.x && y < a.y)); }
  friend ostream &operator<<(ostream &os, const Pt &a) { os << "(" << a.x << ", " << a.y << ")"; return os; }
};
Int tri(const Pt &a, const Pt &b, const Pt &c) { return (b - a).det(c - a); }

// (-(1/2)PI, (3/2)PI]
int cmpArg(const Pt &a, const Pt &b) {
  const int sa = (a.x > 0) ? 0 : (a.x < 0) ? 2 : (a.y > 0) ? 1 : 3;
  const int sb = (b.x > 0) ? 0 : (b.x < 0) ? 2 : (b.y > 0) ? 1 : 3;
  return (sa < sb) ? -1 : (sa > sb) ? +1 : sig(b.det(a));
}


unsigned xrand() {
  static unsigned x = 314159265, y = 358979323, z = 846264338, w = 327950288;
  unsigned t = x ^ x << 11; x = y; y = z; z = w; return w = w ^ w >> 19 ^ t ^ t >> 8;
}


using Double = double;
constexpr Double INF = 1e+20;

int N;
vector<Pt> P;

Double D[310][310];
char S[310][310][310];

// inside triangle 0, i, j
int cnt[310][310];

// inside triangle i, j, k
int enclose(int i, int j, int k) {
  int ret = 0;
  ret += cnt[i][j];
  ret += cnt[j][k];
  ret += cnt[k][i];
  ret -= (S[0][j][i] + S[j][k][i] + S[k][0][i]) / 3;
  ret -= (S[0][k][j] + S[k][i][j] + S[i][0][j]) / 3;
  ret -= (S[0][i][k] + S[i][j][k] + S[j][0][k]) / 3;
#ifdef LOCAL
int brt=0;
for(int l=0;l<N;++l)brt+=abs((S[i][j][l]+S[j][k][l]+S[k][i][l])/3);
if(brt!=ret)cerr<<P[i]<<" "<<P[j]<<" "<<P[k]<<": "<<brt<<" "<<ret<<endl;
assert(brt==ret);
#endif
  return ret;
}

Double cost[310][310];

using Dir = pair<Pt, pair<int, pair<int, int>>>;
vector<Dir> dirs;

// s: min (x, y)
// area - ratio * length >= 0
bool check(int src, Double ratio) {
  vector<Double> dp(N, -INF);
  Double start = 0.0, goal = -INF;
  for (const auto &dir : dirs) {
    const int i = dir.second.second.first;
    const int j = dir.second.second.second;
    if (dir.second.first == 0) {
      if (S[src][i][j] >= 0 && enclose(src, i, j) == 0) {
// cerr<<i<<" -> "<<j<<endl;
        chmax((src == j) ? goal : dp[j], ((src == i) ? start : dp[i]) + tri(P[src], P[i], P[j]) / 2.0 - ratio * cost[i][j]);
      }
    } else {
// cerr<<"impose "<<i<<" "<<D[i][j]<<endl;
      if (src == i) {
        if (dir.first.x > 0 || (dir.first.x == 0 && dir.first.y > 0)) {
          // impose when: arg(dir) < go
          start -= ratio * D[i][j];
        } else {
          // impose when: come <= arg(dir)
          goal -= ratio * D[i][j];
        }
      } else {
        dp[i] -= ratio * D[i][j];
      }
    }
  }
// cerr<<src<<" "<<ratio<<" "<<dp<<" "<<goal<<endl;
  return (goal >= 0.0);
}

int main() {
  for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
    scanf("%d", &N);
    P.resize(N);
    for (int i = 0; i < N; ++i) {
      scanf("%lld%lld", &P[i].x, &P[i].y);
    }
    sort(P.begin(), P.end());
    
    for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) {
      D[i][j] = sqrt((Double)(P[j] - P[i]).abs2());
    }
    for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) for (int k = 0; k < N; ++k) {
      S[i][j][k] = sig(tri(P[i], P[j], P[k]));
    }
    
    for (int i = 0; i < N; ++i) {
      fill(cnt[i], cnt[i] + N, 0);
    }
    for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) if (S[0][i][j] > 0) {
      for (int k = 0; k < N; ++k) {
        cnt[i][j] += (S[0][i][k] + S[i][j][k] + S[j][0][k]) / 3;
      }
      cnt[j][i] = -cnt[i][j];
    }
// if(N<=3)for(int i=0;i<N;++i)for(int j=0;j<N;++j)for(int k=0;k<N;++k)cerr<<i<<" "<<j<<" "<<k<<": "<<enclose(i,j,k)<<endl;
    
    /*
      cost of j at corner i:
        - come in [arg(P[j] - P[i]) - PI/2, arg(P[j] - P[i]) + PI/2]
        - go   in [arg(P[j] - P[i]) + PI/2, arg(P[j] - P[i]) - PI/2]
      
      for src != i
      impose when: come <= arg(P[j] - P[i]) + PI/2 < go
      (ignore non-convex turning)
      
      remaining cost: projected on the segment [i, j)
    */
    // projected on the segment
    for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) {
      cost[i][j] = D[i][j];
      for (int k = 0; k < N; ++k) {
        if (S[i][j][k] < 0 &&
            (P[j] - P[i]).dot(P[k] - P[i]) >= 0 &&
            (P[i] - P[j]).dot(P[k] - P[j]) >  0) {
          cost[i][j] += min(D[i][k], D[j][k]);
        }
      }
    }
    
    dirs.clear();
    for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) if (i != j) {
      dirs.emplace_back(P[j] - P[i], make_pair(0, make_pair(i, j)));
      dirs.emplace_back((P[j] - P[i]) * Pt(0, 1), make_pair(1, make_pair(i, j)));
    }
    sort(dirs.begin(), dirs.end(), [&](const Dir &dir0, const Dir &dir1) -> bool {
      const int s = cmpArg(dir0.first, dir1.first);
      return (s ? (s < 0) : (dir0.second < dir1.second));
    });
// cerr<<"dirs = "<<dirs<<endl;
// cerr<<"P = "<<P<<endl;check(1,0.71);continue;
    
    vector<int> srcs(N);
    for (int i = 0; i < N; ++i) {
      swap(srcs[xrand() % (i + 1)], srcs[i] = i);
    }
    Double lo = 0.0;
    for (const int src : srcs) {
      if (check(src, lo)) {
        Double hi = 1e+9;
        for (int iter = 0; iter < 60; ++iter) {
          const Double mid = (lo + hi) / 2.0;
          (check(src, mid) ? lo : hi) = mid;
        }
      }
    }
    printf("%.12f\n", lo);
  }
#ifndef LOCAL
  break;
#endif
  }
  return 0;
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 7816kb

input:

4
3
-1 -1
1 -1
0 1
4
0 0
10 0
0 10
8 1
5
2 0
-2 0
1 1
-1 1
0 3
8
4 4
-4 4
4 -4
-4 -4
5 6
-6 5
-5 -6
6 -5

output:

0.309016994285
1.236861427514
0.271137541238
1.563100209420

result:

ok 4 numbers

Test #2:

score: 0
Accepted
time: 78ms
memory: 5716kb

input:

10000
3
702262 828158
-350821 -420883
-466450 13507
3
28647 -193498
126436 -864937
-287798 738936
3
270358 -269567
745815 -485408
834083 677952
3
-2036 -403634
742978 -263774
975937 -609237
3
584248 -472620
482016 -356760
284902 903881
3
-292004 504925
-935756 373793
-781101 -434659
3
-858513 684433...

output:

85789.087398353484
18268.519361671824
102489.988390261860
66685.754428079395
18674.657937413525
106468.965131971927
14427.024651070264
29966.245302542360
143547.751083586772
13097.175688125615
162410.168316980125
72070.932417874283
29369.992627886582
52867.294431100876
90314.308346756327
99775.92719...

result:

ok 10000 numbers

Test #3:

score: 0
Accepted
time: 82ms
memory: 5728kb

input:

10000
3
2 2
2 -2
-5 -5
3
-3 5
5 -4
2 -2
3
-4 1
2 -2
-4 4
3
1 -4
2 1
-4 1
3
2 1
-1 1
-3 3
3
4 5
3 -1
-3 -3
3
1 5
5 0
5 -1
3
2 -3
-5 -3
5 3
3
-4 4
0 -5
5 4
3
2 -3
5 0
2 -5
3
-2 -3
5 -3
5 4
3
-1 4
4 4
4 3
3
5 3
-1 4
2 -1
3
2 -3
4 3
-4 3
3
0 4
-2 -2
-1 -3
3
-2 0
-4 -2
4 2
3
-3 -1
3 1
1 -3
3
2 -5
2 3
-4 ...

output:

0.650700700787
0.226809069789
0.494682565744
0.825532630970
0.267532474472
0.737928456188
0.136852946510
0.827745795517
1.389628120040
0.248476165858
1.025126265125
0.225245121166
0.798168850458
1.052177633215
0.270090756184
0.221028003192
0.654929147373
1.065792545364
0.120736187541
0.172721212333
...

result:

ok 10000 numbers

Test #4:

score: 0
Accepted
time: 98ms
memory: 5812kb

input:

5625
4
-405394 -381883
602267 -335687
-620806 984110
271283 531233
4
196903 -993060
290851 358123
-890076 -717709
-681138 209884
4
-849589 607722
-21517 -586295
208561 -220953
924518 622983
4
-832186 456270
289934 43656
636006 339718
188963 113907
4
-305762 -872205
-520125 368722
-774548 984204
4245...

output:

232625.004274430394
268175.826985963213
159589.323630517232
60440.753042597818
133893.123436351190
63201.990748626078
167697.663406134292
129470.013284315559
126903.854072810122
106643.971263096697
131692.311227904691
100421.055016211729
148490.274817902071
68842.242309822439
241376.191116128699
303...

result:

ok 5625 numbers

Test #5:

score: 0
Accepted
time: 100ms
memory: 5736kb

input:

5625
4
-2 -1
4 -5
-2 -4
-4 -4
4
-1 -5
4 4
2 -5
-5 1
4
-3 -4
-3 -1
-5 -1
4 -2
4
-2 4
-4 1
-1 -1
5 -4
4
-3 -5
-1 4
5 -1
3 5
4
-4 -2
1 4
-1 1
3 4
4
-5 3
-3 3
5 -4
-1 4
4
1 2
2 -5
1 0
0 -3
4
-5 -4
2 -3
5 3
-3 2
4
2 -2
-4 3
1 -4
-5 -5
4
-3 5
-2 4
1 3
1 -4
4
0 -5
5 -5
0 -2
-3 2
4
0 5
-1 -4
-2 0
4 -1
4
4 -...

output:

0.491968206624
1.608023935704
0.676463563117
0.814682126294
1.572795402596
0.202044801019
0.442367305113
0.305583211498
1.508906909142
1.322787523614
0.521855949034
0.398280449419
1.219494625606
1.177491255285
1.395102692224
1.073773125684
0.754089789744
0.607559108000
1.437319220657
0.967112345771
...

result:

ok 5625 numbers

Test #6:

score: 0
Accepted
time: 107ms
memory: 5784kb

input:

3600
5
114127 146710
467065 -311758
189643 449065
-303893 -215009
-789281 -140748
5
-449893 654165
-899120 -560520
719351 652759
285007 471281
987628 -767128
5
-587522 89736
-355416 -178001
801765 512722
314119 -136906
350051 762194
5
85697 920768
161507 -533920
-536515 401333
-27632 -987465
112237 ...

output:

84655.199548641656
270848.726867046440
202824.036734045134
135615.191873947682
119666.508543505945
89811.870770702968
254983.153575301229
189662.747266510967
64951.657089439359
154748.442291013489
214519.682079035643
163467.532800248824
278857.257440858812
191490.497905822529
172625.529642624722
144...

result:

ok 3600 numbers

Test #7:

score: 0
Accepted
time: 108ms
memory: 5736kb

input:

3600
5
2 6
-6 4
4 0
-5 0
3 1
5
0 3
5 -5
2 6
4 0
2 -4
5
2 -2
-6 -3
-5 -5
-1 3
-4 0
5
0 6
-3 -5
5 1
4 -3
-5 6
5
0 -6
-6 -5
-2 6
1 6
2 0
5
2 1
6 5
4 -1
-3 -2
-6 4
5
-1 -2
5 -6
-1 4
-2 3
6 4
5
-6 3
6 -5
4 -4
3 -1
2 -6
5
5 -4
1 -5
1 0
5 -1
3 2
5
-4 6
2 -4
1 -4
5 5
-1 6
5
-3 0
0 6
-2 5
-5 5
2 6
5
2 -1
-4 ...

output:

1.391733813648
1.060007675318
1.338660496443
2.178641490559
1.867763528909
1.255064419579
1.819705452294
0.946302318623
1.131643310161
1.577239085356
0.521212423048
1.537179567662
0.947338473967
1.047090987558
0.557229792620
1.208597019863
1.230289371757
0.667574167720
0.366506013906
0.694342548645
...

result:

ok 3600 numbers

Test #8:

score: 0
Accepted
time: 108ms
memory: 5836kb

input:

3600
5
-3 1
0 -1
2 -3
4 1
5 0
5
-3 -5
1 -5
-2 -2
3 2
1 5
5
-4 -2
4 5
5 3
2 -4
-4 0
5
0 4
-5 3
1 4
-1 1
4 1
5
5 -3
2 -5
-3 -4
-1 1
5 1
5
-5 5
-2 1
-3 2
2 2
-4 5
5
-2 -3
-1 3
1 1
3 -2
-2 -2
5
2 1
-2 -3
-3 -3
5 0
-5 4
5
2 2
-2 5
5 -1
4 -5
-2 4
5
-4 5
-1 -3
-2 5
5 -1
-4 3
5
-5 -4
-1 -3
0 -1
-5 1
-4 -3
5...

output:

0.543380852466
1.207931264265
1.575494573870
0.807518148516
1.556679600327
0.682449066876
0.907440118707
0.950838996948
0.853770882819
1.371308224729
0.742640802152
0.401491623765
0.747427628341
0.493469159563
0.711214494334
0.609299855361
1.234436170013
0.433814829496
1.467933330796
0.695462449728
...

result:

ok 3600 numbers

Test #9:

score: 0
Accepted
time: 103ms
memory: 5876kb

input:

3600
5
0 2
3 -7
7 3
-6 -1
6 -6
5
-3 6
-5 6
-10 -2
-4 -8
-9 8
5
-2 2
2 -9
6 -3
2 10
-5 7
5
-7 9
9 -4
-8 -2
4 10
9 -8
5
-8 -5
-10 0
-7 0
0 -7
6 8
5
10 -7
8 -8
3 1
0 -4
-7 -4
5
2 -9
-3 1
-4 -2
-3 -3
0 1
5
-8 5
-10 6
2 -8
6 -5
-6 8
5
5 8
-8 -9
3 -7
-9 0
-4 3
5
2 -5
2 0
6 7
10 5
-8 -6
5
-10 -2
7 -6
-10 5...

output:

2.105200917055
1.536768657247
1.607020249511
3.526347322774
1.978433495611
1.082518584028
0.946163226543
1.602327121970
2.883772154844
0.940814875658
1.701362562986
1.600920246018
1.933487252392
0.691865962958
1.833984298906
0.630647968644
3.433951873762
2.448706755524
1.551666062485
1.145489029152
...

result:

ok 3600 numbers

Test #10:

score: 0
Accepted
time: 141ms
memory: 5784kb

input:

900
10
-10 -1
8 -6
7 -1
-5 8
-7 -9
4 -2
-9 10
-10 -8
9 9
-3 -6
10
-5 9
-7 -1
-9 -7
-4 6
-5 2
1 -4
10 8
-9 -9
2 0
7 7
10
-3 -7
9 -4
-5 2
1 1
6 7
-4 7
4 -6
0 1
-8 -5
3 -5
10
-3 -10
-8 -7
-5 -5
-6 3
-3 -1
7 -9
1 -5
9 -7
-2 3
-4 9
10
0 1
-3 8
-3 7
4 -10
10 -6
-5 -8
10 4
4 3
0 -8
3 -10
10
4 -5
2 0
-5 -10...

output:

2.606027486615
1.263341789284
1.183899114586
0.882728470790
1.878227295721
1.569813583218
1.553295322728
1.632832330481
1.573799484161
0.997095962863
0.942482996911
1.417282633456
1.401766574344
1.693986663410
2.862877850828
2.055359776405
2.208776867137
1.320239391228
1.505864484553
1.595800106599
...

result:

ok 900 numbers

Test #11:

score: 0
Accepted
time: 132ms
memory: 7792kb

input:

900
10
670067 394291
-797310 -637136
-435933 -923795
120936 309795
-934569 -688829
950758 634654
983083 900196
174829 181896
-191047 177910
258020 672165
10
424046 -657491
391198 -14995
-302986 -597011
-96387 -486090
-164032 -356501
-891789 12548
-703186 -924511
808215 -212606
659523 490088
738901 5...

output:

81290.161838387052
91483.733196163026
100154.027055843995
192606.414820315200
177441.647434418148
76150.892372177856
177358.705373884412
230115.879266812815
280209.262845027493
61218.543021287696
137504.791637735441
168344.544041082205
162167.181814908341
133102.529269232997
177087.456345741346
1635...

result:

ok 900 numbers

Test #12:

score: 0
Accepted
time: 184ms
memory: 7972kb

input:

225
20
-4 -9
-5 3
7 -10
10 7
2 7
1 4
2 2
-5 -1
-9 -1
-3 10
-8 -6
0 -5
7 -4
-6 -8
-7 -5
-1 -7
-1 -3
8 -6
6 3
8 2
20
8 2
6 -8
-3 -6
-2 9
5 -2
0 8
8 0
-7 -9
3 1
4 -10
4 7
-6 -1
-8 -7
2 -8
-8 -1
1 -9
2 -10
1 2
-7 8
-10 3
20
5 8
0 -3
9 -9
-10 -4
-10 -2
9 10
-2 8
-6 -10
6 -6
-3 7
5 10
7 7
-5 -6
-2 3
-4 0
...

output:

0.612786987709
1.113790722391
0.761536436153
1.330805908831
0.754049223882
1.332837976544
0.670314797454
1.035312804722
0.906817408235
0.976966661903
0.750284895699
0.778031577446
0.717904921200
0.571580229259
0.772106109760
0.769291031735
1.890445999353
0.860096066185
1.077733239066
1.312981086249
...

result:

ok 225 numbers

Test #13:

score: 0
Accepted
time: 175ms
memory: 10032kb

input:

225
20
983700 -466859
-20884 -364855
807044 -308568
-785298 910840
-61173 -276993
-872226 -878552
-235162 831941
978289 938037
585612 -598517
545857 403231
-450887 -558997
-293044 -675226
-900628 102932
-836719 -530135
-534412 -681687
-487340 -227869
161252 -557533
397943 464720
170537 68556
413322 ...

output:

103902.052600549083
185063.038457367744
60443.657372329501
118360.364609652373
157018.785130765347
103511.465806247841
65549.699479301751
67043.358828878074
105010.270532679599
93450.057668448339
96005.228207606386
54350.098601304300
134718.535343140276
98397.354570108218
71213.294966376212
77465.39...

result:

ok 225 numbers

Test #14:

score: 0
Accepted
time: 42ms
memory: 10224kb

input:

6
50
-107573 -479674
-523931 117259
705403 519626
-802569 -162243
510741 876735
206326 -333274
448335 -276206
482965 -837837
873180 -965235
-359525 608790
-53827 782310
689038 -718590
739597 111296
420387 -953079
-492679 -243600
-929509 1174
800731 -968797
208236 193620
249265 499134
848153 771472
5...

output:

20480.382854002277
21190.022149753735
27821.672595880951
28113.319340532515
27223.967607932835
31857.835710023268

result:

ok 6 numbers

Test #15:

score: 0
Accepted
time: 224ms
memory: 10304kb

input:

36
50
569818 -279771
972561 928848
383 744221
-453534 -154445
293032 502859
744851 436690
293077 503053
657 744258
317135 -276665
293067 502799
277103 -439313
282010 -387735
276848 -439025
972274 928763
-110443 -507380
744799 436605
282061 -387926
-453689 -154326
317468 -276534
-453630 -154510
28193...

output:

81019.427454406483
77527.258772979694
55029.246423311844
42253.154385652088
72715.857822992562
197374.630740651628
37469.722581922957
66130.352995364839
54454.597806512014
125611.088368523837
71800.206273050513
87529.336768807625
143932.887614789943
95010.134681514086
86801.347938500679
106229.48886...

result:

ok 36 numbers

Test #16:

score: 0
Accepted
time: 225ms
memory: 10272kb

input:

36
50
-767165 583573
-284890 -681002
-423448 -259226
-285077 -680913
-921552 -557651
-767105 583853
-423314 -259380
790075 -225214
-921537 -557431
-767305 583770
-767124 583508
-921629 -557448
-423530 -259463
-284954 -680837
-423426 -259294
-423469 -259099
-767302 583744
-921772 -557672
-423503 -259...

output:

36643.605480613769
73491.058057637914
355454.440213159309
76283.491515342175
114070.220777055234
102751.942339930800
346834.508596233558
142611.057937860402
246800.067113917379
131055.886666590348
22279.887989219838
215589.657625078806
83424.868814161367
51800.234542961014
43278.861687912809
278223....

result:

ok 36 numbers

Test #17:

score: 0
Accepted
time: 239ms
memory: 10308kb

input:

36
50
-757926 470127
-757550 470454
250422 -395772
250548 -395869
568164 -704082
250417 -396082
-757845 470427
444672 170989
250387 -395875
250484 -395866
568177 -704202
-757558 470484
250530 -395763
250488 -395883
-757754 470201
250529 -396062
-757760 470255
568050 -704413
444991 171218
444963 1710...

output:

41461.415731251021
61470.345902095592
198910.999967381940
35019.368645436647
139342.579707832774
26339.662839055083
247086.679248967383
108103.832978619932
269038.970057263097
40491.226764097344
99838.873958293494
174035.149737150699
172811.211970721022
155604.880301618716
30013.670597071148
250614....

result:

ok 36 numbers

Test #18:

score: 0
Accepted
time: 288ms
memory: 15004kb

input:

9
100
-79487 826724
571284 354748
-312616 727781
-838024 249391
-79475 826592
796988 -514208
-847898 -839919
584481 896431
-847899 -839656
-312680 727782
22798 138363
466409 -215121
-36729 -925283
677267 -733543
-789119 581936
-789111 581860
271104 629366
571356 354824
-946155 -832752
571238 354954
...

output:

23149.750594908270
20131.169120865557
50752.303675323754
22743.251242484559
21418.019942250052
24609.132975065459
20676.575270589754
23043.755915184120
35012.220302951719

result:

ok 9 numbers

Test #19:

score: 0
Accepted
time: 0ms
memory: 7860kb

input:

1
10
2 -999
3 -998
4 -995
5 -990
6 -983
7 -974
8 -963
9 -950
1000 1000
-1000 1000

output:

293.827108692730

result:

ok found '293.8271087', expected '293.8271087', error '0.0000000'

Test #20:

score: 0
Accepted
time: 875ms
memory: 42828kb

input:

1
300
-1000000 700000
-999999 697990
-999998 695960
-999997 693910
-999996 691840
-999995 689750
-999994 687640
-999993 685510
-999992 683360
-999991 681190
-999990 679000
-999989 676790
-999988 674560
-999987 672310
-999986 670040
-999985 667750
-999984 665440
-999983 663110
-999982 660760
-999981 ...

output:

46.717945370792

result:

ok found '46.7179454', expected '46.7179454', error '0.0000000'

Test #21:

score: 0
Accepted
time: 963ms
memory: 43328kb

input:

1
300
-9999 -2
-9998 -3
-9995 -4
-9990 -5
-9983 -6
-9974 -7
-9963 -8
-9950 -9
-9935 -10
-9918 -11
-9899 -12
-9878 -13
-9855 -14
-9830 -15
-9803 -16
-9774 -17
-9743 -18
-9710 -19
-9675 -20
-9638 -21
-9599 -22
-9558 -23
-9515 -24
-9470 -25
-9423 -26
-9374 -27
-9323 -28
-9270 -29
-9215 -30
-9158 -31
-9...

output:

2367.692137978895

result:

ok found '2367.6921380', expected '2367.6921380', error '0.0000000'

Test #22:

score: 0
Accepted
time: 826ms
memory: 43456kb

input:

1
300
700000 1000000
697990 999999
695960 999998
693910 999997
691840 999996
689750 999995
687640 999994
685510 999993
683360 999992
681190 999991
679000 999990
676790 999989
674560 999988
672310 999987
670040 999986
667750 999985
665440 999984
663110 999983
660760 999982
658390 999981
656000 999980...

output:

46.717945370687

result:

ok found '46.7179454', expected '46.7179454', error '0.0000000'

Test #23:

score: 0
Accepted
time: 1123ms
memory: 43828kb

input:

1
300
-2 9999
-3 9998
-4 9995
-5 9990
-6 9983
-7 9974
-8 9963
-9 9950
-10 9935
-11 9918
-12 9899
-13 9878
-14 9855
-15 9830
-16 9803
-17 9774
-18 9743
-19 9710
-20 9675
-21 9638
-22 9599
-23 9558
-24 9515
-25 9470
-26 9423
-27 9374
-28 9323
-29 9270
-30 9215
-31 9158
-32 9099
-33 9038
-34 8975
-35 8...

output:

2367.692137978728

result:

ok found '2367.6921380', expected '2367.6921380', error '0.0000000'

Test #24:

score: 0
Accepted
time: 1027ms
memory: 43452kb

input:

1
300
1000000 -700000
999999 -697990
999998 -695960
999997 -693910
999996 -691840
999995 -689750
999994 -687640
999993 -685510
999992 -683360
999991 -681190
999990 -679000
999989 -676790
999988 -674560
999987 -672310
999986 -670040
999985 -667750
999984 -665440
999983 -663110
999982 -660760
999981 -...

output:

46.717945370538

result:

ok found '46.7179454', expected '46.7179454', error '0.0000000'

Test #25:

score: 0
Accepted
time: 1043ms
memory: 43968kb

input:

1
300
9999 2
9998 3
9995 4
9990 5
9983 6
9974 7
9963 8
9950 9
9935 10
9918 11
9899 12
9878 13
9855 14
9830 15
9803 16
9774 17
9743 18
9710 19
9675 20
9638 21
9599 22
9558 23
9515 24
9470 25
9423 26
9374 27
9323 28
9270 29
9215 30
9158 31
9099 32
9038 33
8975 34
8910 35
8843 36
8774 37
8703 38
8630 3...

output:

2367.692137978877

result:

ok found '2367.6921380', expected '2367.6921380', error '0.0000000'

Test #26:

score: 0
Accepted
time: 1093ms
memory: 43448kb

input:

1
300
-700000 -1000000
-697990 -999999
-695960 -999998
-693910 -999997
-691840 -999996
-689750 -999995
-687640 -999994
-685510 -999993
-683360 -999992
-681190 -999991
-679000 -999990
-676790 -999989
-674560 -999988
-672310 -999987
-670040 -999986
-667750 -999985
-665440 -999984
-663110 -999983
-6607...

output:

46.717945370580

result:

ok found '46.7179454', expected '46.7179454', error '0.0000000'

Test #27:

score: 0
Accepted
time: 1090ms
memory: 43200kb

input:

1
300
2 -999999
3 -999998
4 -999995
5 -999990
6 -999983
7 -999974
8 -999963
9 -999950
10 -999935
11 -999918
12 -999899
13 -999878
14 -999855
15 -999830
16 -999803
17 -999774
18 -999743
19 -999710
20 -999675
21 -999638
22 -999599
23 -999558
24 -999515
25 -999470
26 -999423
27 -999374
28 -999323
29 -9...

output:

24.916064111362

result:

ok found '24.9160641', expected '24.9160641', error '0.0000000'

Test #28:

score: 0
Accepted
time: 759ms
memory: 42824kb

input:

1
300
2 -44999
3 -44998
4 -44995
5 -44990
6 -44983
7 -44974
8 -44963
9 -44950
10 -44935
11 -44918
12 -44899
13 -44878
14 -44855
15 -44830
16 -44803
17 -44774
18 -44743
19 -44710
20 -44675
21 -44638
22 -44599
23 -44558
24 -44515
25 -44470
26 -44423
27 -44374
28 -44323
29 -44270
30 -44215
31 -44158
32...

output:

479.302066068520

result:

ok found '479.3020661', expected '479.3020661', error '0.0000000'

Test #29:

score: 0
Accepted
time: 994ms
memory: 43760kb

input:

1
300
2 -9999
3 -9998
4 -9995
5 -9990
6 -9983
7 -9974
8 -9963
9 -9950
10 -9935
11 -9918
12 -9899
13 -9878
14 -9855
15 -9830
16 -9803
17 -9774
18 -9743
19 -9710
20 -9675
21 -9638
22 -9599
23 -9558
24 -9515
25 -9470
26 -9423
27 -9374
28 -9323
29 -9270
30 -9215
31 -9158
32 -9099
33 -9038
34 -8975
35 -8...

output:

2367.692137978236

result:

ok found '2367.6921380', expected '2367.6921380', error '0.0000000'

Test #30:

score: 0
Accepted
time: 1002ms
memory: 43540kb

input:

1
300
2 -49999
3 -49998
4 -49995
5 -49990
6 -49983
7 -49974
8 -49963
9 -49950
10 -49935
11 -49918
12 -49899
13 -49878
14 -49855
15 -49830
16 -49803
17 -49774
18 -49743
19 -49710
20 -49675
21 -49638
22 -49599
23 -49558
24 -49515
25 -49470
26 -49423
27 -49374
28 -49323
29 -49270
30 -49215
31 -49158
32...

output:

7347.578773741211

result:

ok found '7347.5787737', expected '7347.5787737', error '0.0000000'

Test #31:

score: 0
Accepted
time: 1067ms
memory: 42828kb

input:

1
300
2 -99999
3 -99998
4 -99995
5 -99990
6 -99983
7 -99974
8 -99963
9 -99950
10 -99935
11 -99918
12 -99899
13 -99878
14 -99855
15 -99830
16 -99803
17 -99774
18 -99743
19 -99710
20 -99675
21 -99638
22 -99599
23 -99558
24 -99515
25 -99470
26 -99423
27 -99374
28 -99323
29 -99270
30 -99215
31 -99158
32...

output:

7264.823548688567

result:

ok found '7264.8235487', expected '7264.8235487', error '0.0000000'

Test #32:

score: 0
Accepted
time: 660ms
memory: 42528kb

input:

1
300
2 -999999
3 -999998
4 -999995
5 -999990
6 -999983
7 -999974
8 -999963
9 -999950
10 -999935
11 -999918
12 -999899
13 -999878
14 -999855
15 -999830
16 -999803
17 -999774
18 -999743
19 -999710
20 -999675
21 -999638
22 -999599
23 -999558
24 -999515
25 -999470
26 -999423
27 -999374
28 -999323
29 -9...

output:

80244.513740441849

result:

ok found '80244.5137404', expected '80244.5137404', error '0.0000000'

Test #33:

score: 0
Accepted
time: 1447ms
memory: 43208kb

input:

1
300
-582688 -338066
65950 664506
726195 -342195
778617 -357210
-854288 556277
300499 294357
643715 884595
145808 699895
823594 197029
-326906 -938477
-635849 -984773
-133686 656789
-435448 690719
903384 -472986
82595 315750
-162788 541714
-77694 -237304
-850565 -426412
248922 -808508
-719332 -6663...

output:

1478.830055879114

result:

ok found '1478.8300559', expected '1478.8300559', error '0.0000000'

Test #34:

score: 0
Accepted
time: 1473ms
memory: 42376kb

input:

1
300
329399 -774056
-453420 -971922
-963389 -692906
-901061 -690960
-954671 -555749
954332 -856245
97920 127454
422794 -72309
402518 -482396
-274243 -242236
-63992 224700
841180 586025
-266496 -824730
-178245 -230280
680876 907784
553835 674598
89593 396532
143208 -684880
538608 -578116
-422477 757...

output:

972.423280233624

result:

ok found '972.4232802', expected '972.4232802', error '0.0000000'

Test #35:

score: 0
Accepted
time: 1317ms
memory: 42428kb

input:

1
300
-360611 262745
-266788 208188
-959303 -907228
-443316 -204307
682906 -640611
-629502 -217089
-323067 -687634
437059 491032
-924621 882842
844758 667473
765630 -661241
-192156 -841346
-154832 -812793
-47327 10282
-597348 957691
892586 942751
142330 937555
953415 -727776
-605831 643868
-310790 -...

output:

1247.635447574849

result:

ok found '1247.6354476', expected '1247.6354476', error '0.0000000'

Test #36:

score: 0
Accepted
time: 1054ms
memory: 42740kb

input:

1
300
-206748 733504
405233 346961
-313290 -216319
-485737 -231831
-164104 165946
-515020 -589364
982156 -80607
873259 619605
-482416 -888108
-569548 252891
-445640 901994
985477 -967333
42455 -483916
73904 760015
-943641 942808
396828 484027
-841584 -24224
-175993 952815
790566 541282
-279849 -3442...

output:

999.019396374877

result:

ok found '999.0193964', expected '999.0193964', error '0.0000000'

Test #37:

score: 0
Accepted
time: 1637ms
memory: 42804kb

input:

1
300
580502 -850604
-828356 778
184624 -535893
-697221 -969976
896503 -655248
-76966 -243055
60920 160544
44843 -658551
-447963 886466
278568 389553
-623912 -127161
678049 -413324
-430351 -318993
-817724 -933164
-711215 340590
-74113 689203
68654 -100261
182253 786353
970301 867792
-749733 -811174
...

output:

842.059072395605

result:

ok found '842.0590724', expected '842.0590724', error '0.0000000'

Test #38:

score: 0
Accepted
time: 1188ms
memory: 42308kb

input:

1
300
-316120 -118763
45309 190875
409669 -105265
-506284 573308
-516833 322648
-866719 -936225
-12677 -985703
711314 569209
941787 83443
-514860 686132
-790586 -545380
430362 -424821
-833415 938854
-942534 683223
-240135 606924
-403050 269157
-215947 985881
-549116 600378
459464 -595098
725250 1147...

output:

1024.497869845572

result:

ok found '1024.4978698', expected '1024.4978698', error '0.0000000'

Test #39:

score: 0
Accepted
time: 1125ms
memory: 43020kb

input:

1
300
-173407 -202877
781435 -868900
-708456 340380
-576940 717700
182725 270819
936854 705842
-558936 563953
-442817 -537862
456021 536960
-280357 -280460
865334 142839
774139 179758
441597 150328
97859 -980348
-33644 644740
-930102 492073
-672777 225390
567301 -123428
272474 613299
939529 -568972
...

output:

999.858900835391

result:

ok found '999.8589008', expected '999.8589008', error '0.0000000'

Test #40:

score: 0
Accepted
time: 1465ms
memory: 43092kb

input:

1
300
-345250 -831776
-186776 -708481
-461210 345548
-813591 339981
875529 -243454
-612714 -565349
342248 -74704
440632 -335722
-680195 541251
-40910 -905178
644877 899186
274573 743026
873540 -442740
535392 952686
797733 860447
-20479 505758
-951532 613082
-890210 663776
767606 -285569
466835 86332...

output:

931.052311224034

result:

ok found '931.0523112', expected '931.0523112', error '0.0000000'

Test #41:

score: 0
Accepted
time: 1522ms
memory: 43420kb

input:

1
300
370249 -59123
-776101 -977670
-243135 -532403
-579041 96635
569778 -862215
413939 -366298
481224 272525
393367 -40979
483831 994010
-233019 628811
-143918 477955
339126 11331
-107685 517540
622176 -412060
-177324 -205192
431089 749790
-95536 -210836
548410 -707079
616094 -127500
-783278 -72261...

output:

933.760486717436

result:

ok found '933.7604867', expected '933.7604867', error '0.0000000'

Test #42:

score: 0
Accepted
time: 1663ms
memory: 42056kb

input:

1
300
572725 -213611
493742 -808213
-710052 -380510
893881 -474967
9640 -788263
-459353 580756
-26412 638961
440498 -802856
453695 -912107
22051 -399011
547574 755649
-686907 874963
-504322 -340049
692117 -724428
668948 874184
48863 726276
-663172 -738633
360506 985895
589965 723490
-791113 -581246
...

output:

1077.841380659701

result:

ok found '1077.8413807', expected '1077.8413807', error '0.0000000'

Test #43:

score: 0
Accepted
time: 879ms
memory: 42504kb

input:

1
300
-18347 947891
-18966 947674
-18153 949129
371892 55936
-19040 948495
-19316 948666
-19369 949236
-18720 948324
-19293 949610
-17823 949522
-19243 948220
-18639 948552
-17649 949411
371651 54266
-19228 948586
-17602 948463
-19485 949188
-18243 948112
-17773 948743
372205 54093
-18298 949126
371...

output:

430.901650849991

result:

ok found '430.9016508', expected '430.9016509', error '0.0000000'

Test #44:

score: 0
Accepted
time: 889ms
memory: 43844kb

input:

1
300
-74242 456694
-526886 299650
-74220 457055
-73487 456305
-73859 456656
61507 -819056
60998 -819121
-526707 299370
-526276 300041
61552 -817655
-526738 299576
-74124 456791
-527186 299008
61978 -818405
-74813 455682
60560 -819145
-73451 455525
-74892 457185
-73693 456477
60721 -818196
60214 -81...

output:

90267.093134149181

result:

ok found '90267.0931341', expected '90267.0931341', error '0.0000000'

Test #45:

score: 0
Accepted
time: 1070ms
memory: 42672kb

input:

1
300
574585 394710
574622 393610
-423278 771639
-424926 771360
-424084 771410
-355381 -781788
-355711 -782971
573941 394518
-356559 -782641
-356747 -782401
468958 -215431
-423584 771961
574237 394615
-423230 771874
574235 394702
-424141 771353
-423250 771823
469278 -214864
-423677 771854
470643 -21...

output:

217408.148135299969

result:

ok found '217408.1481353', expected '217408.1481353', error '0.0000000'

Test #46:

score: 0
Accepted
time: 950ms
memory: 42396kb

input:

1
300
426446 450150
704880 -177836
705023 -177943
365125 -787336
426646 450111
365336 -787509
-488479 191560
365230 -787626
351178 85715
426393 450079
426499 450252
350929 85788
351095 85697
350955 85774
351185 85404
426289 450343
-488469 191487
365412 -787578
351069 85754
-488205 191341
365332 -787...

output:

20170.870906386666

result:

ok found '20170.8709064', expected '20170.8709064', error '0.0000000'

Test #47:

score: 0
Accepted
time: 785ms
memory: 42924kb

input:

1
300
-400243 814451
22608 892635
-400101 814103
6514 778975
993334 -477496
6342 779132
462061 255284
-51701 297766
22472 892564
340929 -448021
479819 -339231
-400286 814390
211825 26983
6556 779317
993060 -477289
993308 -477342
-51535 297899
340706 -447842
340883 -447854
-400416 814256
-400283 8141...

output:

9230.442316324688

result:

ok found '9230.4423163', expected '9230.4423163', error '0.0000000'

Test #48:

score: 0
Accepted
time: 846ms
memory: 43128kb

input:

1
300
-474014 -864992
-630838 -307407
-630606 -307503
-124096 -743059
-771964 728691
772586 240106
-772183 728879
391413 526273
199846 912927
428389 -576556
-308290 579377
-255160 -108840
772406 240313
-367068 -161358
772571 240365
-308290 579342
391393 526479
-415239 -4737
-367131 -161451
199868 91...

output:

15025.974843814167

result:

ok found '15025.9748438', expected '15025.9748438', error '0.0000000'

Test #49:

score: 0
Accepted
time: 805ms
memory: 43096kb

input:

1
300
50620 -400031
50739 -399860
510490 905605
-231850 -472272
819819 -32769
556769 430166
510572 905474
-835681 -521539
-892931 517162
308414 643333
726593 422199
864670 -884154
-923273 383788
405709 273425
-479932 -974056
410500 738923
186655 767275
-182443 950085
-567600 -112887
603101 210566
93...

output:

3406.453545214995

result:

ok found '3406.4535452', expected '3406.4535452', error '0.0000000'

Test #50:

score: 0
Accepted
time: 1114ms
memory: 44072kb

input:

1
300
176452 -329206
-579449 737212
-127383 552242
979657 -356153
80368 -694513
460265 -812959
445149 141242
-457009 -165865
607661 133016
-790741 -28932
833272 -591475
-579288 737176
-259244 232127
-387178 -302780
176289 -329051
-581332 414202
130425 339972
280492 -57804
-23731 -362222
-538093 -596...

output:

1990.340567872288

result:

ok found '1990.3405679', expected '1990.3405679', error '0.0000000'

Test #51:

score: 0
Accepted
time: 1183ms
memory: 43308kb

input:

1
300
1000000 0
999780 20942
999122 41875
998026 62790
996492 83677
994521 104528
992114 125333
989272 146083
985996 166768
982287 187381
978147 207911
973578 228350
968583 248689
963162 268919
957319 289031
951056 309016
944376 328866
937281 348572
929776 368124
921863 387515
913545 406736
904827 4...

output:

499972.252536308952

result:

ok found '499972.2525363', expected '499972.2525363', error '0.0000000'

Test #52:

score: 0
Accepted
time: 1419ms
memory: 42092kb

input:

1
299
1000000 0
999111 42156
996445 84238
992008 126169
985807 167877
977854 209286
968162 250323
956748 290915
943634 330989
928842 370475
912398 409303
894332 447402
874676 484707
853465 521149
830736 556665
806531 591191
780891 624666
753863 657030
725495 688227
695837 718199
664941 746895
632864...

output:

208109.814859427337

result:

ok found '208109.8148594', expected '208109.8148594', error '0.0000000'