QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#522854#6599. The Grand TournamentSSL_TJHAC ✓293ms4144kbC++146.4kb2024-08-17 16:06:002024-08-17 16:06:00

Judging History

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

  • [2024-08-17 16:06:00]
  • 评测
  • 测评结果:AC
  • 用时:293ms
  • 内存:4144kb
  • [2024-08-17 16:06:00]
  • 提交

answer

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm> 

#define cp const point &
#define cl const line &
#define LD long double

using namespace std;

const LD pi = acos(-1.0);
const LD eps = 1e-12;

int sgn(LD x) {
    return x > eps ? 1 : (x < -eps ? -1 : 0);
}

struct point {
    LD x, y;
    point operator +(cp a) const {
        return {x + a.x, y + a.y};
    }
    point operator -(cp a) const {
        return {x - a.x, y - a.y};
    }
    point operator *(LD t) const {
        return {x * t, y * t};
    }
    point operator /(LD t) const {
        return {x / t, y / t};
    }
    point rot(LD t) const {
        return {(LD) (x * cos(t) - y * sin(t)), (LD) {x * sin(t) + y * cos(t)}};
    }
    point rot90() const {
        return {-y, x};
    }
    LD len2() const {
        return x * x + y * y;
    }
    LD len() const {
        return sqrtl(x * x + y * y);
    }
    point unit() const {
        LD d = len();
        return {(LD) (x / d), (LD) (y / d)};
    }
    int on_up() {
        return sgn(y) == 1 || (sgn(y) == 0 && sgn(x) < 0);
    }
    void print() {
        cout << x << ' ' << y << endl;
    }
    void read() {
        int xx, yy;
        cin >> xx >> yy;
        x = xx; y = yy;
    }
    friend bool operator < (cp a, cp b) {
        return a.x == b.x ? a.y < b.y : a.x < b.x;
    }
    friend bool operator > (cp a, cp b) {
        return a.x == b.x ? a.y > b.y : a.x > b.x;
    }
};

LD dot(cp a, cp b);

bool operator==(cp a, cp b) {
    return !sgn(dot(a - b, a - b));
}
bool operator!=(cp a, cp b) {
	return !(a == b);
}

LD dot(cp a, cp b) {
	return a.x * b.x + a.y * b.y;
}

LD det(cp a, cp b) {
	return a.x * b.y - a.y * b.x;
}

struct line {
    point s, t;

    line()
    {}

    line(point a, point b) : s(a), t(b)
    {}

    void read() {
        s.read(), t.read();
    }

    void print() {
        s.print(), cout << ' ', t.print();
    }
};

bool point_on_line(cp a, cl l) {
    return sgn(det(a - l.s, l.t - l.s)) == 0;
}

bool point_on_segment(cp a, cl l) {
    return point_on_line(a, l) && sgn(dot(l.s - a, l.t - a)) <= 0;
}

bool two_side(cp a, cp b, cl c) {
    return sgn(det(a - c.s, c.t - c.s)) * sgn(det(b - c.s, c.t - c.s)) < 0;
}

bool intersect_judge_strict(cl a, cl b) {
    return two_side(a.s, a.t, b) && two_side(b.s, b.t, a);
}

bool intersect_judge(cl a, cl b) {
    if (point_on_segment(a.s, b) || point_on_segment(a.t, b) || point_on_segment(b.s, a) || point_on_segment(b.t, a)) return 1;
    return intersect_judge_strict(a, b);
}

point line_intersect(cl a, cl b) {
	LD s1 = det(a.t - a.s, b.s - a.s);
	LD s2 = det(a.t - a.s, b.t - a.s);
	return (b.s * s2 - b.t * s1) / (s2 - s1); 
}

int onRight(cl a, cp b) {return det(a.t - a.s, b - a.s) <= -eps;}

vector <point> my_half_plane(vector <line> a) {
    sort(a.begin(), a.end(), [&](line x, line y) {
        point u = x.t - x.s, v = y.t - y.s;
        if (u.on_up() != v.on_up()) return u.on_up() < v.on_up();
        if (sgn(det(u, v))) return sgn(det(u, v)) > 0;
            else return sgn(det(x.t - y.s, y.t - y.s)) < 0;
    });
    int n = a.size();
    vector <line> que(n + 1);
    vector <point> p1(n + 1);
    vector <point> p2;
    int left = 0, right = 0;
    que[0] = a[0];
    vector <point> sb;
    for (int i = 1; i < n; i++) {
        if (sgn(det(a[i].t - a[i].s, a[i - 1].t - a[i - 1].s)) == 0) continue;
        while (left < right && onRight(a[i], p1[right])) right--;
        while (left < right && onRight(a[i], p1[left + 1])) left++;
        que[++right] = a[i];
        if (std::abs(det(que[right].t - que[right].s, que[right - 1].t - que[right - 1].s)) <= eps) {
            if (onRight(que[right], que[right - 1].s) && dot(que[right].t - que[right].s, que[right - 1].t - que[right - 1].s) <= -eps) return sb;
            right--;
            if (!onRight(que[right], a[i].s)) que[right] = a[i];
        }
        if (left < right) p1[right] = line_intersect(que[right], que[right - 1]);
    }
    while (left < right && onRight(que[left], p1[right])) right--;
    if (right - left <= 1) return sb;
    p1[left] = line_intersect(que[left], que[right]);
    for (int i = left; i <= right; i++)
        p2.push_back(p1[i]);
    return p2;
}

LD get_are(vector <point> pu) {
    LD ans = 0;
    int n = pu.size();
    for (int i = 0; i < n; i++) ans += det(pu[i], pu[(i + 1) % n]);
    return ans / 2;
}

point l, r;
line l1, l2;

void slove() {
    l.read(); r.read();
    l1.read(); l2.read();
    if (intersect_judge_strict(l1, l2) || !intersect_judge(l1, l2)) {
        printf("0\n"); return ;
    }
    vector <line> f;
    f.push_back(line(l, (point){r.x, l.y}));
    f.push_back(line((point){r.x, l.y}, r));
    f.push_back(line(r, (point){l.x, r.y}));
    f.push_back(line((point){l.x, r.y}, l));
    
    if (l1.t > l1.s) swap(l1.t, l1.s);
    if (l2.t > l2.s) swap(l2.t, l2.s);
    if ((l1.t - l1.s).len() < (l2.t - l2.s).len()) swap(l1, l2);

    if (sgn(det(l1.t - l1.s, l2.t - l2.s)) == 0) {
        int cnt = 0;
        if (l1.s == l2.s) cnt++;
        if (l1.s == l2.t) cnt++;
        if (l1.t == l2.s) cnt++;
        if (l1.t == l2.t) cnt++;
        if (cnt == 2) {
            printf("%.20Lf\n", (r.y - l.y) * (r.x - l.x)); return ;
        }
        else if (cnt == 1) {
        	if (!point_on_segment(l2.s, l1) || !point_on_segment(l2.t, l1)) {
        		printf("0\n"); return ;
			}
			if (l2.s == l1.s || l2.s == l1.t) {
				f.push_back(line(l2.t, l2.t + (l2.t - l2.s).rot90()));
			}
			else {
				f.push_back(line(l2.s, l2.s + (l2.s - l2.t).rot90()));
			}
		}
		else if (!cnt) {
			f.push_back(line(l1.t, l1.t + (l1.t - l1.s).rot90()));
			f.push_back(line(l1.s, l1.s + (l1.s - l1.t).rot90()));
			f.push_back(line(l2.t, l2.t + (l2.t - l2.s).rot90()));
			f.push_back(line(l2.s, l2.s + (l2.s - l2.t).rot90()));
		}
    }
    else {
    	if (l1.s != l2.s && l1.s != l2.t && l1.t != l2.s && l1.t != l2.t) {
    		printf("0\n"); return ; 
		}
		point mt;
		if (l1.s == l2.s || l1.s == l2.t) mt = l1.s;
			else mt = l1.t;
		if (l1.s != mt) swap(l1.s, l1.t);
		if (l2.s != mt) swap(l2.s, l2.t);
		f.push_back(line(l1.s, l1.s - (l1.s - l1.t).rot90()));
		f.push_back(line(l2.s, l2.s - (l2.s - l2.t).rot90()));
	}
	printf("%.20Lf\n", get_are(my_half_plane(f)));
}

int main() {
    int t; scanf("%d", &t);
    while (t--) slove();
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2
0 0 3 3
1 1 1 2
2 1 2 2
0 0 3 3
1 1 1 2
1 2 2 2

output:

0
1.00000000000000000000

result:

ok 2 numbers

Test #2:

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

input:

10
0 0 7 6
2 4 4 4
3 2 5 2
0 0 7 6
2 4 4 4
4 4 5 2
0 0 2 4
1 1 1 2
1 2 1 3
0 0 2 3
1 1 1 2
1 1 1 2
0 0 3 3
1 1 2 2
1 2 2 1
0 0 2 4
1 1 1 2
1 2 1 3
0 0 6 6
1 1 5 5
1 5 3 3
0 0 2 3
1 1 1 2
1 1 1 2
0 0 2 5
1 1 1 3
1 2 1 4
0 0 2 4
1 1 1 3
1 1 1 2

output:

0
3.75000000000000000000
0
6.00000000000000000000
0
0
0
6.00000000000000000000
2.00000000000000000000
4.00000000000000000000

result:

ok 10 numbers

Test #3:

score: 0
Accepted
time: 243ms
memory: 4100kb

input:

100000
350 720 355 732
353 725 352 729
354 721 353 725
-807 606 -801 621
-803 608 -803 616
-803 616 -803 614
-389 463 -373 466
-382 464 -387 464
-387 464 -385 464
-664 801 -655 806
-656 803 -659 803
-659 803 -657 802
896 -767 901 -762
900 -763 897 -763
900 -763 897 -763
403 645 407 652
406 647 405 6...

output:

0
42.00000000000000000000
12.00000000000000000000
24.00000000000000000000
25.00000000000000000000
28.00000000000000000000
99.00000000000000000000
0
135.00000000000000000000
6.00000000000000000000
42.00000000000000000000
45.00000000000000000000
120.00000000000000000000
8.00000000000000000000
84.00000...

result:

ok 100000 numbers

Test #4:

score: 0
Accepted
time: 287ms
memory: 3864kb

input:

100000
-653 -979 -650 -961
-652 -973 -651 -973
-652 -973 -651 -973
-311 -975 -297 -966
-301 -967 -309 -973
-309 -973 -301 -967
734 -459 746 -420
736 -451 743 -440
736 -451 743 -440
127 431 139 456
131 436 138 447
138 447 131 436
-535 293 -505 299
-510 296 -531 297
-510 296 -533 295
571 -397 584 -371...

output:

54.00000000000000000000
126.00000000000000000000
468.00000000000000000000
300.00000000000000000000
29.59006211180124523707
190.66666666666666429819
75.00000000000000000000
0
323.00000000000000000000
0
0
18.00000000000000000000
0
141.28947368421052654952
29.30769230769231015188
21.0000000000000000000...

result:

ok 100000 numbers

Test #5:

score: 0
Accepted
time: 250ms
memory: 3964kb

input:

100000
-553 286 -544 299
-551 297 -552 288
-551 297 -548 293
-535 81 -526 122
-534 86 -532 117
-532 117 -534 86
42 -110 54 -94
43 -95 47 -109
47 -109 45 -102
392 33 397 38
395 36 394 37
394 37 395 36
-934 910 -916 933
-924 915 -933 916
-917 921 -933 916
-119 -981 -87 -975
-90 -980 -114 -980
-103 -97...

output:

6.44444444444444997089
369.00000000000000000000
106.28571428571428580945
25.00000000000000000000
5.59999999999999431566
0
32.00000000000000000000
216.00000000000000000000
0
99.89999999999999857891
0
6.00000000000000000000
276.64999999999999147349
0
462.00000000000000000000
42.00000000000000000000
0
...

result:

ok 100000 numbers

Test #6:

score: 0
Accepted
time: 280ms
memory: 3916kb

input:

100000
587 345 644 380
643 368 595 358
643 368 595 358
361 362 367 379
362 373 364 368
364 368 366 363
-418 766 -374 819
-410 796 -403 813
-417 779 -403 813
-536 183 -488 322
-510 238 -521 222
-521 222 -532 304
719 393 812 421
728 417 808 420
728 417 808 420
209 -634 242 -618
231 -623 238 -626
238 -...

output:

1995.00000000000000000000
0
1265.64705882352942012403
1482.56478658536585513161
2604.00000000000000000000
528.00000000000000000000
384.00000000000000000000
481.63076923076921787015
0
490.00000000000000000000
70.00000000000000000000
0
16.00000000000000000000
270.00000000000000000000
597.4545454545454...

result:

ok 100000 numbers

Test #7:

score: 0
Accepted
time: 270ms
memory: 3960kb

input:

100000
-77 35 -66 122
-69 98 -72 81
-72 81 -69 70
-804 257 -551 278
-656 269 -794 277
-656 269 -587 265
-311 610 -280 731
-306 638 -288 700
-306 638 -288 700
-438 472 -433 615
-437 536 -437 499
-437 499 -437 536
-295 -71 -213 39
-275 -29 -238 34
-275 -29 -238 34
589 387 728 432
646 394 631 407
616 4...

output:

5.61497326203208579898
0
3751.00000000000000000000
715.00000000000000000000
9020.00000000000000000000
0
14300.00000000000000000000
16364.27419354838709608657
50801.48387096774193594229
16.00000000000000000000
0
2493.63636363636364734475
280.66071428571427759380
44.00000000000000000000
185.0000000000...

result:

ok 100000 numbers

Test #8:

score: 0
Accepted
time: 270ms
memory: 3904kb

input:

100000
-475 589 -253 919
-408 663 -351 817
-408 663 -351 817
524 632 561 857
553 829 556 729
541 765 559 807
-253 -540 -98 -505
-239 -506 -232 -510
-239 -506 -232 -510
-149 639 -51 649
-130 647 -87 644
-130 647 -87 644
719 -478 924 92
916 -66 920 74
910 -276 912 -206
-75 -924 -47 -677
-66 -844 -48 -...

output:

73260.00000000000000000000
0
5425.00000000000000000000
980.00000000000000000000
0
4692.47058823529411775155
651.00000000000000000000
560.00000000000000000000
21645.00000000000000000000
1013.24678505817513851639
32053.00000000000000000000
96819.00000000000000000000
31937.17558907621019415046
168.0000...

result:

ok 100000 numbers

Test #9:

score: 0
Accepted
time: 282ms
memory: 3920kb

input:

100000
-302 -975 987 976
-25 289 396 -1
21 -703 930 -131
-993 -999 968 963
-381 -323 929 583
487 -43 -303 -356
-700 -827 301 846
-366 742 -570 319
-570 319 -638 178
401 -174 675 180
463 -149 455 -131
463 -149 459 -140
-133 -812 454 808
221 176 145 537
121 651 145 537
-334 -930 781 -18
638 -504 279 -...

output:

0
0
0
18936.44444444444444286546
0
1016880.00000000000000000000
602.17054587411474475545
509410.00000000000000000000
0
177747.80838323353293617402
240642.33870967741934521200
369120.77861445783133831355
0
538241.00000000000000000000
0
0
0
257258.78297872340425556104
339529.65157894736842081329
47737...

result:

ok 100000 numbers

Test #10:

score: 0
Accepted
time: 256ms
memory: 3840kb

input:

100000
-979 -985 824 957
559 390 -209 191
313 140 -209 191
-803 -976 928 979
686 -661 -676 876
686 -661 -676 876
-930 -993 896 995
519 318 -16 230
-16 230 519 318
-625 -850 969 915
540 -88 575 572
526 -352 561 308
-840 -977 839 946
122 -658 -670 403
-670 403 122 -658
-994 -1000 951 1000
383 -468 211...

output:

1351762.30935704022988375073
3384105.00000000000000000000
3630088.00000000000000000000
632999.13636363636362602847
3228717.00000000000000000000
867642.88888888888891415263
0
3506074.00000000000000000000
3256160.00000000000000000000
3230766.00000000000000000000
3144390.00000000000000000000
3487424.00...

result:

ok 100000 numbers

Test #11:

score: 0
Accepted
time: 275ms
memory: 3900kb

input:

100000
-998 -998 997 994
-271 -892 885 154
501 -277 -539 313
-992 -993 977 998
-240 190 -155 863
107 43 -449 362
-992 -1000 996 1000
-498 586 530 -270
-813 478 787 -484
-999 -990 994 999
328 -701 -484 -425
328 -701 -484 -425
-998 -999 997 994
-559 439 929 299
185 369 929 299
-1000 -999 994 999
766 -...

output:

0
0
0
3964077.00000000000000000000
1687977.24327956989247923048
3984012.00000000000000000000
1186.80727014902987548339
3769116.00000000000000000000
3972033.00000000000000000000
2145411.93416370106751855928
0
2031273.56321839080464997096
769194.25854700854705470192
1829984.50909090909090082278
223380...

result:

ok 100000 numbers

Test #12:

score: 0
Accepted
time: 226ms
memory: 3840kb

input:

100000
329 -90 334 -72
332 -89 332 -88
332 -89 332 -88
-211 427 -208 432
-209 428 -210 430
-209 428 -210 430
277 218 283 223
281 222 280 220
281 222 280 220
117 -745 128 -740
118 -744 127 -743
127 -743 118 -744
-438 172 -429 184
-437 177 -431 177
-431 176 -436 177
-406 529 -403 535
-405 530 -405 531...

output:

90.00000000000000000000
15.00000000000000000000
30.00000000000000000000
55.00000000000000000000
0
18.00000000000000000000
0.66666666666666429819
9.00000000000000000000
0
11.37500000000000000000
1.25000000000000000000
15.00000000000000000000
352.00000000000000000000
0
0
80.00000000000000000000
0
12.0...

result:

ok 100000 numbers

Test #13:

score: 0
Accepted
time: 284ms
memory: 3788kb

input:

100000
864 -604 868 -586
867 -598 866 -587
867 -601 866 -587
-973 -363 -967 -352
-971 -354 -969 -358
-968 -360 -968 -361
731 -847 734 -835
732 -845 733 -845
733 -845 732 -845
322 -154 356 -147
352 -148 342 -148
345 -148 355 -148
12 -593 16 -571
13 -580 14 -586
15 -592 13 -580
-665 293 -660 296
-663 ...

output:

3.96103896103896602199
0
36.00000000000000000000
49.00000000000000000000
60.00000000000000000000
15.00000000000000000000
71.50000000000000000000
0
40.00000000000000000000
36.00000000000000000000
104.00000000000000000000
24.00000000000000000000
12.00000000000000000000
48.00000000000000000000
0
6.0000...

result:

ok 100000 numbers

Test #14:

score: 0
Accepted
time: 280ms
memory: 3852kb

input:

100000
11 -579 21 -575
14 -578 15 -576
14 -578 15 -576
638 916 653 935
650 925 650 929
650 918 650 927
207 -519 210 -495
209 -504 209 -499
209 -517 209 -503
-892 533 -879 547
-886 535 -891 545
-886 535 -891 545
24 -431 48 -381
25 -385 45 -415
45 -415 41 -397
-260 675 -253 742
-254 711 -257 731
-257 ...

output:

40.00000000000000000000
30.00000000000000000000
3.00000000000000000000
182.00000000000000000000
238.00000000000000000000
469.00000000000000000000
3.02105263157895365111
85.00000000000000000000
0
2304.00000000000000000000
5.00000000000000000000
48.00000000000000000000
732.00000000000000000000
272.000...

result:

ok 100000 numbers

Test #15:

score: 0
Accepted
time: 272ms
memory: 3936kb

input:

100000
233 -984 278 -977
237 -981 238 -979
236 -983 238 -979
612 814 628 829
622 824 627 818
622 824 627 818
948 403 965 406
953 404 951 405
951 405 953 404
-709 840 -551 862
-701 861 -630 847
-630 847 -701 861
536 523 543 534
537 524 541 525
541 525 537 524
-63 -483 -49 -466
-50 -477 -52 -480
-52 -...

output:

290.00000000000000000000
240.00000000000000000000
51.00000000000000000000
3476.00000000000000000000
77.00000000000000000000
8.57142857142857206298
0
1092.00000000000000000000
2662.00000000000000000000
187.85000000000002273737
836.00000000000000000000
960.00000000000000000000
0
0
861.7999999999999829...

result:

ok 100000 numbers

Test #16:

score: 0
Accepted
time: 291ms
memory: 4100kb

input:

100000
725 209 729 214
727 210 726 211
726 211 727 210
660 -376 740 -226
738 -238 709 -291
738 -238 709 -291
149 -399 200 -264
196 -298 186 -384
196 -298 186 -384
312 -847 455 -765
390 -772 426 -813
426 -813 390 -772
947 -739 957 -632
956 -685 955 -693
955 -693 950 -733
-30 -883 -23 -878
-29 -882 -2...

output:

20.00000000000000000000
12000.00000000000000000000
6885.00000000000000000000
11726.00000000000000000000
0
8.00000000000000000000
612.00000000000000000000
0
1180.00000000000000000000
19234.00000000000000000000
0
0
0
5896.00000000000000000000
0
3213.00000000000000000000
492.00000000000000000000
0
0
18...

result:

ok 100000 numbers

Test #17:

score: 0
Accepted
time: 277ms
memory: 3848kb

input:

100000
-382 62 -103 103
-249 90 -246 99
-155 84 -246 99
-216 2 -111 48
-209 5 -153 3
-140 32 -166 39
-266 326 -109 379
-183 354 -208 346
-208 346 -183 354
-398 -169 327 192
-305 69 190 -164
-305 69 190 -164
-611 -877 -385 -717
-529 -784 -413 -775
-529 -784 -413 -775
-356 -68 -258 -48
-279 -49 -336 -...

output:

25.31868131868131843731
0
8321.00000000000000000000
261725.00000000000000000000
36160.00000000000000000000
0
148708.00000000000000000000
1048.68421052631580892012
33420.55813953488371836897
23546.00000000000000000000
6453.84780701754385745517
1156.00000000000000000000
17.96491228070176759957
629.787...

result:

ok 100000 numbers

Test #18:

score: 0
Accepted
time: 268ms
memory: 3840kb

input:

100000
-670 -906 906 875
76 659 787 -116
787 -116 76 659
-512 346 718 508
87 409 344 492
657 449 344 492
-129 -479 474 487
234 -281 374 -23
29 357 164 -410
-370 -981 -168 987
-310 377 -198 -801
-310 377 -224 985
-919 -182 943 834
-465 389 -403 402
-403 402 -217 441
-550 -982 -534 418
-542 -847 -542 ...

output:

2806856.00000000000000000000
58.92318593751942756853
0
425.74278438030560067773
0
22400.00000000000000000000
415800.00000000000000000000
0
813732.00000000000000000000
1094143.94077448747157177422
442188.00000000000000000000
0
0
0
62167.33980582524271341072
1417705.40453857791226255358
0
495772.68101...

result:

ok 100000 numbers

Test #19:

score: 0
Accepted
time: 293ms
memory: 4136kb

input:

100000
-1000 -857 805 872
303 182 -659 649
-659 649 303 182
-983 -960 901 944
-346 -598 -518 380
-432 -109 -604 869
-997 -952 965 920
733 -238 -389 -846
733 -238 -389 -846
-956 -970 980 994
-247 824 -479 664
-566 604 -305 784
-975 -746 883 894
-338 217 -827 497
-827 497 151 -63
-791 -588 946 900
202...

output:

3120845.00000000000000000000
949771.01840490797548000046
3672864.00000000000000000000
504273.93103448275860500871
910394.51942740286301614105
2584656.00000000000000000000
0
3346200.00000000000000000000
3722814.00000000000000000000
0
3455808.00000000000000000000
3381192.00000000000000000000
3000370.0...

result:

ok 100000 numbers

Test #20:

score: 0
Accepted
time: 287ms
memory: 3772kb

input:

100000
-1000 -999 1000 998
339 -905 140 -133
140 -133 657 231
-992 -982 991 998
-250 -429 -135 -67
-365 -791 -250 -429
-966 -976 980 981
303 -92 106 -551
303 -92 106 -551
-997 -992 996 997
793 744 -740 -330
282 386 -229 28
-1000 -999 999 993
333 573 -767 222
333 573 -767 222
-981 -985 999 993
-273 -...

output:

1006535.99987973662325657642
0
3808322.00000000000000000000
1470130.78321617159917877871
3982008.00000000000000000000
298549.56521739130442938404
3548251.88285392897319070471
1288381.26608037807034179423
3876561.00000000000000000000
0
253344.00000000000000000000
0
0
49050.53236896987411341797
464519...

result:

ok 100000 numbers

Test #21:

score: 0
Accepted
time: 285ms
memory: 3964kb

input:

100000
52 -610 56 -606
54 -608 55 -607
55 -608 53 -607
-353 -35 -349 -31
-351 -32 -351 -34
-352 -33 -351 -32
839 -323 842 -313
841 -321 840 -318
841 -321 840 -318
938 -62 941 -58
940 -61 939 -60
940 -61 939 -60
-702 416 -699 423
-700 419 -700 417
-700 419 -700 417
-337 349 -332 353
-333 351 -333 350...

output:

0
2.50000000000000000000
30.00000000000000000000
12.00000000000000000000
21.00000000000000000000
10.00000000000000000000
9.00000000000000000000
1.50000000000000000000
7.00000000000000000000
0
18.00000000000000000000
36.00000000000000000000
24.00000000000000000000
9.00000000000000000000
5.00000000000...

result:

ok 100000 numbers

Test #22:

score: 0
Accepted
time: 262ms
memory: 3960kb

input:

100000
-537 167 -533 182
-534 180 -534 173
-534 176 -534 180
-165 -532 -131 -523
-161 -525 -157 -524
-157 -524 -161 -525
899 556 904 564
901 560 900 561
900 561 902 559
-931 542 -914 549
-930 543 -926 543
-930 543 -918 543
807 -892 816 -876
815 -885 814 -881
815 -885 814 -881
597 -596 606 -579
600 -...

output:

24.00000000000000000000
306.00000000000000000000
17.50000000000000000000
35.00000000000000000000
144.00000000000000000000
153.00000000000000000000
52.00000000000000000000
0
0
36.00000000000000000000
56.00000000000000000000
4.37500000000000000000
0
172.00000000000000000000
20.00000000000000000000
0
1...

result:

ok 100000 numbers

Test #23:

score: 0
Accepted
time: 286ms
memory: 3832kb

input:

100000
-162 86 -148 92
-154 87 -150 91
-160 91 -154 87
160 -125 167 -121
161 -122 165 -124
161 -122 164 -122
-635 366 -618 382
-620 374 -622 378
-623 380 -621 376
615 -689 632 -668
631 -676 621 -680
631 -676 621 -680
-278 61 -273 87
-277 69 -275 84
-275 84 -277 69
289 534 301 547
299 545 292 544
299...

output:

0.83333333333333303727
2.00000000000000000000
42.50000000000000000000
357.00000000000000000000
130.00000000000000000000
156.00000000000000000000
33.00000000000000000000
17.37857142857142989101
154.00000000000000000000
36.00000000000000000000
24.00000000000000000000
32.00000000000000000000
0
8.041666...

result:

ok 100000 numbers

Test #24:

score: 0
Accepted
time: 293ms
memory: 3788kb

input:

100000
-27 318 2 328
-3 320 -23 326
-23 326 -3 320
444 632 486 691
484 638 458 686
471 662 484 638
-630 909 -627 954
-628 912 -629 918
-629 918 -628 912
-393 509 -389 559
-390 532 -390 510
-390 532 -390 510
945 -907 964 -866
952 -869 951 -896
949 -875 956 -877
272 584 286 615
276 599 273 602
276 599...

output:

290.00000000000000000000
1123.50000000000000000000
135.00000000000000000000
200.00000000000000000000
0
218.66666666666666429819
0
400.00000000000000000000
0
2275.00000000000000000000
1152.00000000000000000000
54.00000000000000000000
169.76315789473684958466
167.14285714285714234961
34.00000000000000...

result:

ok 100000 numbers

Test #25:

score: 0
Accepted
time: 261ms
memory: 3916kb

input:

100000
-48 216 12 300
-42 226 2 269
2 269 -42 226
449 -897 523 -671
511 -707 503 -724
452 -743 495 -741
-132 -959 -58 -943
-83 -948 -113 -947
-69 -956 -113 -947
199 -522 296 -129
228 -308 255 -426
255 -426 228 -308
337 -855 388 -818
355 -852 366 -840
366 -840 355 -852
727 712 924 817
736 814 795 773...

output:

5040.00000000000000000000
0
289.53939393939393909250
38121.00000000000000000000
1887.00000000000000000000
0
3160.00000000000000000000
204.50000000000000000000
0
20114.00000000000000000000
0
814.00000000000000000000
397.40166666666666683838
13585.71428571428571530078
0
217.69230769230769340083
242.85...

result:

ok 100000 numbers

Test #26:

score: 0
Accepted
time: 284ms
memory: 4132kb

input:

100000
69 -124 92 -99
90 -103 89 -117
90 -103 89 -117
569 -330 587 -111
572 -194 580 -119
572 -194 580 -119
457 468 830 914
753 680 621 606
489 532 621 606
462 -15 551 70
521 -1 506 -1
504 -1 476 -1
-29 152 111 582
3 254 -1 441
34 335 36 484
-367 -578 -362 -150
-364 -245 -365 -458
-365 -458 -364 -24...

output:

575.00000000000000000000
3942.00000000000000000000
0
0
0
2140.00000000000000000000
21010.00000000000000000000
18444.00000000000000000000
28665.00000000000000000000
0
14000.00000000000000000000
3336.00000000000000000000
8482.50000000000000000000
17800.00000000000000000000
66286.00000000000000000000
3...

result:

ok 100000 numbers

Test #27:

score: 0
Accepted
time: 285ms
memory: 4104kb

input:

100000
-935 -289 -491 868
-614 -6 -860 344
-860 344 -614 -6
-283 -623 420 999
-36 -349 -80 -442
-124 -535 8 -256
-378 -817 55 914
-127 -314 -37 633
-127 -314 -37 633
-249 -550 754 889
509 -515 287 62
509 -515 65 639
-987 -629 887 286
810 -560 301 -383
301 -383 810 -560
-836 -839 132 745
-661 -812 -2...

output:

513708.00000000000000000000
76751.28922287390028600385
749523.00000000000000000000
600522.34835355285963487404
1714710.00000000000000000000
1533312.00000000000000000000
0
0
0
100436.00000000000000000000
430802.45247148288973448871
0
594520.00000000000000000000
1225296.00000000000000000000
1088724.00...

result:

ok 100000 numbers

Test #28:

score: 0
Accepted
time: 272ms
memory: 3996kb

input:

100000
-967 -986 989 976
60 -380 -347 453
60 -380 -347 453
-943 -995 933 978
887 410 -500 -140
887 410 -500 -140
-870 -835 977 994
181 -581 823 -821
823 -821 181 -581
-985 -832 772 915
-551 402 214 884
-551 402 214 884
-969 -820 988 965
478 326 551 34
420 558 551 34
-988 -344 997 877
-942 -184 -881 ...

output:

3837672.00000000000000000000
3701348.00000000000000000000
3378163.00000000000000000000
3069479.00000000000000000000
2013508.37500000000000000000
2423685.00000000000000000000
0
91400.57971735668789392548
3743904.00000000000000000000
700867.69771788313983051921
370580.45886907794192666188
0
106662.215...

result:

ok 100000 numbers

Test #29:

score: 0
Accepted
time: 277ms
memory: 3788kb

input:

100000
-992 -991 993 999
-287 723 -688 -530
-688 -530 -287 723
-999 -1000 1000 1000
-841 -413 137 359
626 745 -352 -27
-997 -1000 997 986
-77 222 -133 959
-133 959 -77 222
-1000 -996 998 978
616 432 793 -930
616 432 793 -930
-1000 -994 977 965
776 -646 970 690
873 22 970 690
-973 -982 993 999
-796 8...

output:

3950150.00000000000000000000
1542553.84519003570790118829
3960084.00000000000000000000
3944052.00000000000000000000
1610389.32260479041917733412
3894646.00000000000000000000
3830324.00000000000000000000
1834613.21447028423767733329
256920.08689671810631693916
0
0
3986006.00000000000000000000
3990000...

result:

ok 100000 numbers

Test #30:

score: 0
Accepted
time: 264ms
memory: 3840kb

input:

100000
757 -469 768 -466
763 -467 759 -468
759 -468 763 -467
-860 -809 -842 -799
-859 -802 -849 -804
-854 -803 -844 -805
-580 -402 -576 -398
-579 -400 -579 -399
-577 -399 -579 -400
-615 364 -599 375
-605 368 -607 373
-605 368 -607 373
141 -198 160 -187
146 -193 150 -190
142 -196 146 -193
-521 -135 -...

output:

33.00000000000000000000
52.00000000000000000000
3.00000000000000000000
176.00000000000000000000
0
20.63333333333333463600
35.00000000000000000000
5.00000000000000000000
12.00000000000000000000
12.00000000000000000000
90.00000000000000000000
44.00000000000000000000
12.00000000000000000000
48.00000000...

result:

ok 100000 numbers

Test #31:

score: 0
Accepted
time: 270ms
memory: 3788kb

input:

100000
24 -943 45 -937
33 -939 31 -940
31 -940 29 -941
24 -407 47 -374
26 -397 40 -382
30 -405 26 -397
-338 -401 -335 -398
-337 -399 -336 -399
-337 -399 -336 -399
-186 554 -141 558
-151 555 -176 556
-151 555 -176 556
-624 109 -617 177
-621 175 -620 157
-622 137 -619 139
-930 -172 -903 -158
-911 -161...

output:

0
2.86666666666666669627
9.00000000000000000000
180.00000000000000000000
0
154.00000000000000000000
0
263.50000000000000000000
238.00000000000000000000
374.00000000000000000000
1242.95833333333332859638
23.98076923076922639666
144.00000000000000000000
0
0
551.00000000000000000000
0
81.00000000000000...

result:

ok 100000 numbers

Test #32:

score: 0
Accepted
time: 285ms
memory: 3920kb

input:

100000
-907 -546 -898 -457
-902 -502 -901 -463
-902 -502 -901 -463
-366 -693 -359 -646
-363 -663 -364 -665
-361 -659 -364 -665
373 -119 390 -110
378 -111 385 -111
376 -111 388 -111
-737 -682 -720 -679
-728 -680 -729 -680
-727 -681 -729 -680
695 214 731 263
723 247 700 218
711 219 709 250
482 -243 48...

output:

801.00000000000000000000
208.25000000000000000000
63.00000000000000000000
23.00000000000000000000
0
84.00000000000000000000
810.00000000000000000000
0
1860.00000000000000000000
1656.00000000000000000000
56.00000000000000000000
204.00000000000000000000
290.00000000000000000000
1010.000000000000000000...

result:

ok 100000 numbers

Test #33:

score: 0
Accepted
time: 275ms
memory: 3932kb

input:

100000
-737 590 -688 597
-732 595 -731 596
-732 595 -736 591
24 -730 52 -476
35 -564 34 -652
35 -564 34 -652
480 -273 562 -155
530 -248 511 -272
530 -248 549 -224
-370 -155 -355 -22
-368 -152 -364 -46
-364 -76 -367 -23
430 827 489 899
454 840 432 869
432 869 473 847
-310 -126 -179 -27
-204 -36 -281 ...

output:

0
7112.00000000000000000000
0
0
302.98065601345669506372
12969.00000000000000000000
3645.00000000000000000000
132.00000000000000000000
5.95486111111111426908
29016.00000000000000000000
0
31987.59374999999999289457
5022.00000000000000000000
112.55905580905580620765
0
1.12500000000000000000
5349.17499...

result:

ok 100000 numbers

Test #34:

score: 0
Accepted
time: 270ms
memory: 4144kb

input:

100000
-717 -894 -455 -770
-597 -886 -533 -836
-533 -836 -565 -861
-798 -326 -742 75
-782 -234 -759 -35
-782 -234 -759 -35
113 -696 295 -596
277 -641 217 -650
117 -665 177 -656
280 -873 734 -751
733 -843 427 -863
344 -796 427 -863
-685 -613 -543 -590
-598 -601 -596 -612
-596 -612 -567 -595
734 309 9...

output:

16449.37500000000000000000
22456.00000000000000000000
0
43.62941963934169109507
3.04310344827585765870
872.34732142857143344372
39611.00000000000000000000
17.04545454545454674644
0
5594.57535753575357695411
0
36295.72413793103448398369
7812.00000000000000000000
15811.00000000000000000000
0
0
38318.9...

result:

ok 100000 numbers

Test #35:

score: 0
Accepted
time: 275ms
memory: 3832kb

input:

100000
-935 -968 975 962
310 93 414 637
219 -383 115 -927
-998 -975 937 981
390 157 -401 -464
390 157 -401 -464
-995 -419 994 865
-281 846 -197 -136
-197 -136 -239 355
-975 -964 998 941
-576 -35 -328 781
-359 679 -328 781
-983 -938 927 845
159 -827 528 481
282 -391 405 45
-982 -967 951 970
804 -685 ...

output:

0
3784860.00000000000000000000
1580064.03054989816700981464
739091.60294117647060829768
899036.12385321100919099990
66224.35225701192229053049
0
3430916.00000000000000000000
2071579.18074324324334156699
245252.30997784315860599236
643532.42718446601941195695
3323293.00000000000000000000
3347344.0000...

result:

ok 100000 numbers