QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#556148#8524. Weather ForecastDjangle162857#TL 2746ms20416kbC++141.5kb2024-09-10 15:22:402024-09-10 15:22:41

Judging History

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

  • [2024-09-10 15:22:41]
  • 评测
  • 测评结果:TL
  • 用时:2746ms
  • 内存:20416kb
  • [2024-09-10 15:22:40]
  • 提交

answer

#include <bits/stdc++.h>
#define fir first
#define sec second
using namespace std;
using ll = long long;
using PII = pair<double, int>;
const int mod = 1000000007;
void solve()
{
	int n, k, sum = 0, mx = -1;
	cin >> n >> k;
	vector<int> a(n + 1, 0);
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		mx = max(mx, a[i]);
		sum += a[i];
	}
	function<bool(double)> check = [&](double ave) {
		vector<double> sum(n + 1, 0);
		vector<double> res(n + 1, 0);
		vector<int> ans(n + 1, 0);
		for (int i = 1; i <= n; i++) {
			res[i] = a[i] - ave;
			// cout << res[i] << " ";
		}
		// cout << endl;
		multiset<PII> s;
		s.insert(PII(0, 0));
		for (int i = 1; i <= n; i++) {
			sum[i] = sum[i - 1] + res[i];
			auto it = s.upper_bound(PII(sum[i], n + 1));
			if (it == s.begin()) {
				ans[i] = -1;
				continue;
			}
			it--;
			ans[i] = it->sec + 1;
			s.insert(PII(sum[i], ans[i]));
			it = ++s.find(PII(sum[i], ans[i]));
			while (it != s.end() && it->sec <= ans[i]) {
				auto rr = it;
				it++;
				s.erase(rr);
			}
		}
		/*for (int i = 1; i <= n; i++) {
			cout << ans[i] << " ";
		}
		cout << endl;*/
		return ans[n] >= k;
	};
	double l = 0.0, r = mx;
	while (r - l >= 1e-9) {
		double mid = (l + r) / 2;
		if (check(mid))
			l = mid;
		else
			r = mid;
	}
	cout << setprecision(8) << l << endl;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int T = 1;
	while (T--)
		solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

7 3
1 3 1 2 2 2 1

output:

1.6666667

result:

ok found '1.66667', expected '1.66667', error '0.00000'

Test #2:

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

input:

1 1
1

output:

1

result:

ok found '1.00000', expected '1.00000', error '0.00000'

Test #3:

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

input:

2 1
2 1

output:

1.5

result:

ok found '1.50000', expected '1.50000', error '0.00000'

Test #4:

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

input:

3 2
2 4 4

output:

3

result:

ok found '3.00000', expected '3.00000', error '0.00000'

Test #5:

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

input:

4 2
6 7 3 12

output:

6.5

result:

ok found '6.50000', expected '6.50000', error '0.00000'

Test #6:

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

input:

5 3
17 23 13 12 21

output:

16.5

result:

ok found '16.50000', expected '16.50000', error '0.00000'

Test #7:

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

input:

7 4
3 37 46 23 46 6 31

output:

23

result:

ok found '23.00000', expected '23.00000', error '0.00000'

Test #8:

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

input:

10 5
30 91 36 53 74 91 37 1 76 3

output:

39.5

result:

ok found '39.50000', expected '39.50000', error '0.00000'

Test #9:

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

input:

100 50
593 336 577 842 505 78 665 825 990 895 952 782 721 242 421 951 786 994 238 154 356 483 686 143 220 473 920 353 738 690 96 915 913 157 412 882 465 585 963 635 68 72 901 143 50 558 310 504 987 97 588 987 841 829 780 497 758 909 503 585 91 657 912 870 663 606 748 492 175 92 375 768 773 206 676 8...

output:

483

result:

ok found '483.00000', expected '483.00000', error '0.00000'

Test #10:

score: 0
Accepted
time: 4ms
memory: 3884kb

input:

1000 500
74 796 330 98 801 45 160 90 432 788 873 109 714 307 407 94 360 136 198 912 744 902 549 398 478 590 663 983 956 267 201 332 610 249 698 268 700 755 902 485 327 539 203 397 721 971 951 378 674 159 269 182 473 993 84 832 808 908 73 608 842 411 465 886 348 153 924 871 729 1 279 949 475 71 982 3...

output:

395

result:

ok found '395.00000', expected '395.00000', error '0.00000'

Test #11:

score: 0
Accepted
time: 54ms
memory: 4368kb

input:

10000 5000
821 298 787 377 804 127 552 321 868 2 375 982 196 201 154 323 49 881 81 182 265 584 179 530 130 213 469 887 667 771 637 634 872 528 560 552 168 299 603 668 244 275 838 524 874 508 751 52 83 224 957 910 349 102 285 236 897 44 797 332 834 978 534 730 260 178 842 877 961 219 378 552 294 796 ...

output:

390.5

result:

ok found '390.50000', expected '390.50000', error '0.00000'

Test #12:

score: 0
Accepted
time: 1444ms
memory: 17100kb

input:

200000 100000
240 455 802 920 682 343 84 855 428 864 623 114 400 668 175 66 376 309 970 367 526 980 47 962 793 90 494 352 721 69 920 233 442 103 812 38 644 987 718 897 756 752 490 436 476 46 690 434 869 179 519 74 833 349 970 328 2 77 964 782 383 536 461 736 540 906 249 296 8 35 259 865 267 831 604 ...

output:

391.33333

result:

ok found '391.33333', expected '391.33333', error '0.00000'

Test #13:

score: 0
Accepted
time: 2594ms
memory: 20416kb

input:

199998 23727
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

1

result:

ok found '1.00000', expected '1.00000', error '0.00000'

Test #14:

score: 0
Accepted
time: 365ms
memory: 20328kb

input:

199997 155
1 2 1 2 2 2 1 1 2 2 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 2 1 1 2 1 1 2 2 1 1 1 1 1 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 1 2 1 1 2 1 2 1 2 1 2 2 1 1 2 1 1 1 2 1 2 2 2 1 1 2 2 1 1 1 1 2 2 1 2 1 1 2 2 2 2 1 2 2 1 1 1 1 1 2 2 1 1 2 2 1 1 1 2 2 1 1 1 2 1 2 1 1 2 2 2 1 2 2 2 1 1 2 1 2 2 1 2 2 1 2 1 1...

output:

1.500289

result:

ok found '1.50029', expected '1.50029', error '0.00000'

Test #15:

score: 0
Accepted
time: 1120ms
memory: 14116kb

input:

199997 5668
4 1 1 4 4 5 3 5 4 2 3 2 4 3 3 4 2 2 2 3 4 1 1 5 1 4 5 3 3 2 2 2 5 4 1 1 5 5 3 1 4 2 2 5 4 4 5 1 4 1 4 1 4 1 4 2 1 4 4 2 1 3 5 4 4 4 1 2 1 4 5 2 5 1 1 1 5 4 5 2 5 5 5 1 2 5 1 2 3 3 2 2 1 5 1 5 1 3 5 4 3 1 2 2 4 3 2 1 4 3 3 3 2 4 2 3 1 5 5 5 4 4 3 3 3 4 2 3 5 2 3 4 5 5 1 1 4 1 2 2 4 5 2 4 ...

output:

2.9953436

result:

ok found '2.99534', expected '2.99534', error '0.00000'

Test #16:

score: 0
Accepted
time: 373ms
memory: 12584kb

input:

199999 40
7 8 8 2 10 1 2 10 1 4 3 7 2 2 5 7 3 7 9 2 9 1 9 9 7 9 4 5 5 6 10 4 8 1 8 2 7 1 8 4 4 10 4 7 3 2 7 8 10 9 6 9 4 5 7 7 2 9 4 7 1 7 3 6 3 1 7 10 6 1 4 7 1 4 2 3 5 1 5 10 5 5 10 5 10 4 7 3 2 4 3 8 8 6 1 5 1 3 8 5 1 9 5 1 4 2 5 2 8 4 3 6 5 5 10 7 6 6 4 9 6 10 3 4 8 7 2 6 9 7 6 9 2 8 9 7 5 8 4 8...

output:

5.5015231

result:

ok found '5.50152', expected '5.50152', error '0.00000'

Test #17:

score: 0
Accepted
time: 518ms
memory: 8576kb

input:

199998 5
99 76 31 60 81 98 31 57 91 45 28 40 66 41 69 53 67 13 28 96 48 52 67 26 50 33 51 72 71 35 67 79 41 33 74 43 58 43 38 24 3 71 16 16 66 62 15 24 95 99 53 59 13 96 18 38 75 96 84 99 43 40 72 46 8 34 66 68 96 79 14 10 41 60 61 26 48 14 34 16 40 68 71 24 5 30 89 26 25 80 18 48 58 35 59 76 59 76 ...

output:

50.498642

result:

ok found '50.49864', expected '50.49864', error '0.00000'

Test #18:

score: 0
Accepted
time: 318ms
memory: 8132kb

input:

200000 3
772 660 48 48 244 440 394 172 177 335 139 778 502 336 571 880 552 539 797 111 428 654 720 549 679 510 503 426 290 358 2 358 649 811 327 237 829 767 867 111 122 223 725 141 310 69 682 694 529 315 743 23 335 485 272 426 321 449 370 202 779 345 165 826 117 371 785 115 709 333 816 379 682 479 9...

output:

500.84252

result:

ok found '500.84252', expected '500.84252', error '0.00000'

Test #19:

score: 0
Accepted
time: 1217ms
memory: 16992kb

input:

200000 1
699 581 24 253 228 784 562 694 404 878 909 661 750 889 344 167 931 267 4 792 73 639 749 368 197 813 644 920 738 793 38 70 609 82 182 120 433 814 270 582 298 189 867 451 816 777 20 253 603 868 790 909 995 161 701 195 735 63 365 316 313 526 632 103 808 883 9 374 722 493 64 476 324 456 617 325...

output:

499.59279

result:

ok found '499.59279', expected '499.59279', error '0.00000'

Test #20:

score: 0
Accepted
time: 787ms
memory: 16968kb

input:

200000 4
378 431 131 583 87 928 543 8 589 805 763 742 240 448 773 535 254 624 987 17 177 809 721 536 943 969 320 5 100 129 267 428 132 476 313 295 911 664 89 212 439 660 468 218 932 519 763 604 656 580 603 850 957 29 711 161 68 595 420 390 289 378 892 609 141 763 536 328 407 562 176 57 480 873 176 3...

output:

499.6768

result:

ok found '499.67680', expected '499.67680', error '0.00000'

Test #21:

score: 0
Accepted
time: 209ms
memory: 7920kb

input:

199998 16
210 964 506 738 277 887 839 677 841 520 76 429 170 72 213 354 243 643 198 983 211 260 534 757 382 627 673 53 411 217 643 778 254 686 946 483 252 286 434 138 645 383 213 314 307 930 388 300 916 731 404 639 896 173 148 840 199 638 495 150 501 875 720 498 148 183 743 338 512 467 964 251 125 4...

output:

500.23866

result:

ok found '500.23866', expected '500.23866', error '0.00000'

Test #22:

score: 0
Accepted
time: 148ms
memory: 7944kb

input:

199997 64
806 405 901 749 787 281 354 782 269 701 310 547 153 765 430 791 165 436 435 469 234 773 86 803 761 537 438 375 949 698 190 350 678 466 940 270 91 517 671 455 532 646 607 855 854 878 82 375 30 111 664 367 111 984 368 86 68 562 912 523 409 487 678 381 80 488 787 895 744 282 460 295 750 622 4...

output:

500.51369

result:

ok found '500.51369', expected '500.51369', error '0.00000'

Test #23:

score: 0
Accepted
time: 595ms
memory: 8192kb

input:

200000 256
195 814 581 503 866 403 770 748 121 147 299 789 120 394 525 869 3 338 985 478 553 524 842 287 838 383 181 944 14 43 727 967 282 388 456 333 257 620 730 17 180 133 423 277 482 6 436 418 35 338 593 773 511 404 418 604 113 503 93 419 411 936 979 644 604 51 141 933 656 942 743 809 971 44 126 ...

output:

501.662

result:

ok found '501.66200', expected '501.66200', error '0.00000'

Test #24:

score: 0
Accepted
time: 536ms
memory: 8192kb

input:

200000 1024
140 473 274 200 938 194 799 848 186 67 216 684 721 405 999 550 227 954 724 155 979 330 1000 374 269 794 932 341 109 151 890 949 933 604 257 994 541 429 459 922 179 401 416 606 152 856 796 347 296 458 617 924 462 893 480 492 487 159 247 835 125 360 590 331 98 590 861 231 499 501 764 977 8...

output:

500.44291

result:

ok found '500.44291', expected '500.44291', error '0.00000'

Test #25:

score: 0
Accepted
time: 1490ms
memory: 17056kb

input:

200000 4096
771 970 259 420 680 18 837 168 619 692 481 699 260 716 54 327 679 142 72 767 427 455 88 59 446 356 581 687 42 774 7 589 788 19 168 795 695 337 575 617 355 674 859 634 377 452 624 870 460 678 615 180 756 391 158 556 1 401 116 281 584 741 681 488 182 313 133 700 420 685 835 196 228 580 545...

output:

498.05778

result:

ok found '498.05778', expected '498.05778', error '0.00000'

Test #26:

score: 0
Accepted
time: 1536ms
memory: 17180kb

input:

200000 16384
817 531 180 287 36 430 748 306 973 587 836 438 141 429 627 907 72 612 93 356 441 425 932 167 180 562 828 199 502 704 348 407 585 652 912 228 435 771 880 983 310 948 441 368 812 142 904 589 409 664 649 582 280 414 628 748 960 330 696 645 446 602 158 947 698 842 79 651 158 141 578 241 867...

output:

492.40216

result:

ok found '492.40216', expected '492.40216', error '0.00000'

Test #27:

score: 0
Accepted
time: 1444ms
memory: 17228kb

input:

199999 65536
83 411 712 696 154 545 837 556 456 947 972 535 104 487 105 138 769 409 237 877 899 717 546 263 978 653 766 535 736 393 804 135 980 496 71 325 778 234 476 335 622 478 762 523 642 244 784 473 547 857 755 487 1000 684 888 625 610 639 970 898 735 311 370 801 324 145 255 331 926 100 444 884 ...

output:

446.71429

result:

ok found '446.71429', expected '446.71429', error '0.00000'

Test #28:

score: 0
Accepted
time: 2746ms
memory: 20280kb

input:

200000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

output:

1

result:

ok found '1.00000', expected '1.00000', error '0.00000'

Test #29:

score: -100
Time Limit Exceeded

input:

200000 1
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1...

output:


result: