QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#593795#9123. Kth SumFAKUMARERWA 618ms72616kbC++233.1kb2024-09-27 16:04:452024-09-27 16:04:45

Judging History

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

  • [2024-09-27 16:04:45]
  • 评测
  • 测评结果:WA
  • 用时:618ms
  • 内存:72616kb
  • [2024-09-27 16:04:45]
  • 提交

answer

# include <bits/stdc++.h>

const int32_t maxn = 100005;

const int64_t inf  = 3e9;

int64_t n, k, s;

int64_t a[maxn], b[maxn], c[maxn];

std::vector <int32_t> used;

inline int64_t rnk (const int64_t val, const int64_t lim) {
	int64_t rk = 0, pos = 0;

	if (!used.empty ()) return std::lower_bound (used.begin (), used.end (), val) - used.begin ();

	if (val < 0) return 0;
	if (val > a[std::min (lim / n + 1, n)] + b[n]) return n * n;
	if (val > a[n] + b[std::min (lim / n + 1, n)]) return std::cerr << val << '\n', n * n;

	pos = std::lower_bound (a + 1, a + n + 1, val - b[1]) - a - 1;

	for (int i = 1; i <= n; ++ i) {
		while (pos > 0 && a[pos] >= val - b[i]) -- pos;
		rk += pos;
	}
	
	return rk;
}



inline int64_t check (const int64_t val) {
	
	int64_t rk = 0;
	
	for (int i = 1; i <= n; ++ i) {
		rk += rnk (val - c[i], k - rk);
		if (rk >= k) return rk;
	}
	
	return rk;
}


inline void getans (int64_t & ans, const int64_t x) {
	int64_t a = check (x - 2), b = check (x - 1), c = check (x), d = check (x + 1), e = check (x + 2);
	
	std::cerr << a << ' ' << b << ' ' << c << ' '  << d << ' ' << e << ' ' << x << '\n';
	
	if (a <  k && k <= b) return ans = x - 2, void ();
	if (b <  k && k <= c) return ans = x - 1, void ();
	if (c <  k && k <= d) return ans = x, void ();
	if (d <  k && k <= e) return ans = x + 1, void ();
	if (e <  k) return ans = x + 2, void ();
}

inline int64_t getmax () {
	int64_t res = inf;
	for (int i = k / n + 1; i <= n; ++ i)
		res = std::min ({res, a[i] + b[k / i + 1] + c[1], a[i] + c[k / i + 1] + b[1], b[i] + a[k / i + 1] + c[1], b[i] + c[k / i + 1] + a[1], c[i] + a[k / i + 1] + b[1], c[i] + b[k / i + 1] + a[1]});
	return res;
}

int64_t ans = 0;

int main () {
	
//	freopen ("turtle.in", "r", stdin);
//	freopen ("turtle.out", "w", stdout);
	
	std::ios::sync_with_stdio (0);
	std::cin.tie (0), std::cout.tie (0);
	
	std::cin >> n >> k;
	
	for (int i = 1; i <= n; ++ i) std::cin >> a[i];
	
	for (int i = 1; i <= n; ++ i) std::cin >> b[i];
	
	for (int i = 1; i <= n; ++ i) std::cin >> c[i];

	std::sort (a + 1, a + n + 1);
	
	std::sort (b + 1, b + n + 1);
	
	std::sort (c + 1, c + n + 1);
	
//	n > 1000 ? s = 1000 : s = n;
	
	int64_t l = 0, r = inf, m = 0;
	
	while (l < r) {
		m = (l + r) >> 1;
		if (rnk (m, k) >= 20000000) r = m;
		else l = m + 1;
	}
	
	if (n * n < 1e7) {
		for (int i = 1; i <= n; ++ i)
			for (int j = 1; j <= n; ++ j)
				used.push_back (a[i] + b[j]);
	} else {
		for (int i = 1; i <= n; ++ i)
			for (int x = 1; a[x] + b[i] < m && x <= n && used.size () <= 1e7; ++ x)
				used.push_back (a[x] + b[i]);
		std::cerr <<  "siz " << used.size () << " lim " << m << '\n';
		for (int i = 1; i <= n; ++ i)
			for (int x = 1; a[x] + b[i] == m && x <= n && used.size () <= 1e7; ++ x)
				used.push_back (a[x] + b[i]);
	}
	
	std::sort (used.begin (), used.end ());
	
//	std::cerr << getmax () << '\n';
	
	l = 0, r = getmax (), m = 0;
	
	while (l < r) {
		m = (l + r) >> 1;
		if (check (m) >= k) r = m - 1;
		else l = m + 1;
	}
	
	getans (ans, m);
	
	std::cout << ans << '\n';
	
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3636kb

input:

2 4
1 2
3 4
5 6

output:

10

result:

ok "10"

Test #2:

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

input:

10 40
11 9 13 12 15 11 11 2 11 17
3 1 10 2 12 18 9 11 11 15
14 9 4 14 16 9 20 2 1 18

output:

14

result:

ok "14"

Test #3:

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

input:

1 1
1000000000
1000000000
1000000000

output:

3000000000

result:

ok "3000000000"

Test #4:

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

input:

314 12491830
429392519 92131736 9460149 448874040 5326166 804308891 571581523 580832602 110825817 11150177 47845585 886171410 888601860 633656718 879205016 333690452 739013504 118317331 8289119 502971381 486014573 167383690 96016893 556946780 634198668 389358242 984894049 735281439 58642904 22106451...

output:

1346801336

result:

ok "1346801336"

Test #5:

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

input:

34 34490
133495256 283197838 857697935 858259368 959152648 301897236 990604260 865643006 704101978 322295867 324109158 258113372 423370893 16000407 224364583 353708691 265955784 183826167 813127458 476308169 634865805 973017138 197716378 674895784 956141489 277068847 534893183 817797721 662940992 82...

output:

2149314674

result:

ok "2149314674"

Test #6:

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

input:

162 3892887
763969065 810700429 42372207 636240914 502913712 840954780 778223217 445420701 2410846 338474264 231776510 588586138 368205344 103376804 569524150 783792347 87865355 617931224 986562016 523273886 488749745 483683293 299415863 792844787 204455380 164779452 748455830 195281294 930802591 80...

output:

2182951602

result:

ok "2182951602"

Test #7:

score: 0
Accepted
time: 1ms
memory: 3736kb

input:

86 413467
763039094 633170311 595642701 709189753 825336413 674979614 902278662 98827324 300719716 354652661 803007374 960528102 608007086 822156983 251120206 213876002 319840344 52036279 86367645 865206894 637600977 362945669 769711568 205761081 157801980 52490057 298454964 572764868 125035261 4872...

output:

1675510101

result:

ok "1675510101"

Test #8:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

214 7057935
98545611 529269121 443880485 487171300 369097477 582633376 321301399 678605020 893995877 2234839 79270945 291000867 847808829 204500671 596279774 233894241 478186405 117545115 891205983 838543682 491484917 873611825 871411053 323710085 406115873 645233371 143421391 950248441 24300640 758...

output:

1763767750

result:

ok "1763767750"

Test #9:

score: 0
Accepted
time: 594ms
memory: 70168kb

input:

9429 823330096
710308717 885443360 151359742 257927627 89698847 133943367 458101850 441715448 448225213 867533556 948805555 168922334 660173729 242187286 990107147 920584508 611308123 525304427 558566303 443722397 295118124 112161359 258379911 198998755 698515100 523982637 41263636 383698580 8552056...

output:

185843818

result:

ok "185843818"

Test #10:

score: 0
Accepted
time: 566ms
memory: 70900kb

input:

10149 691846236
340782526 117978658 704630235 330876466 338492620 967968202 245720807 95122072 746534082 178679244 520036419 909460517 605008179 624530975 335266714 940602747 138250403 254376775 953339225 417059185 149002064 622827516 360079396 316947758 946828992 411693242 959858992 761182154 75447...

output:

160042939

result:

ok "160042939"

Test #11:

score: 0
Accepted
time: 568ms
memory: 71296kb

input:

26277 120170888
971256336 940448541 552868020 445294502 955882613 875621964 664743544 674899768 413439170 194857641 796299991 871337063 844809922 711907373 680426281 739282622 1629172 393514539 758177562 464024901 297853296 133493671 461778881 66300541 195142884 4436555 804825418 138665726 22332656 ...

output:

34606249

result:

ok "34606249"

Test #12:

score: 0
Accepted
time: 565ms
memory: 70988kb

input:

9701 693719733
675359072 836547350 106138512 518243340 204676385 709646799 83766281 959710172 711748039 842439820 367530854 906842537 84611664 725654842 656989629 169366277 823538745 459023375 857983192 805957909 151737236 12756046 932074585 184249545 148489484 597179869 354824553 516149300 92159803...

output:

163052076

result:

ok "163052076"

Test #13:

score: 0
Accepted
time: 594ms
memory: 70188kb

input:

43125 267268577
10865589 364049940 290812785 296224887 822066378 248704341 207821727 539487867 10056907 153585508 980230915 278784499 955817187 813031240 2149196 189384516 350481024 893128432 31417749 779294698 300588468 818389495 328741361 597165840 765399596 484890474 199790980 598665582 115830706...

output:

27436842

result:

ok "27436842"

Test #14:

score: 0
Accepted
time: 582ms
memory: 71416kb

input:

26549 840817422
9935618 186519822 139050570 369173726 70860150 451325395 995440684 192894490 603333068 169763905 551461778 609257266 195618929 826778709 347308764 619468172 582456013 958637268 836256088 826260414 449439700 329055650 799037066 420147551 13713488 77633787 118386334 976149156 383692305...

output:

63457689

result:

ok "63457689"

Test #15:

score: 0
Accepted
time: 600ms
memory: 70452kb

input:

42677 709333562
640409427 82618632 987288355 147155272 688250143 990382938 414463421 772672187 901641938 185942303 122692641 981199229 435420671 914155107 323872111 49551827 404365585 392742323 936061718 168193421 598290933 839721806 900736551 833063847 967060089 965344393 963352762 58665437 9879903...

output:

38001103

result:

ok "38001103"

Test #16:

score: 0
Accepted
time: 568ms
memory: 72616kb

input:

26101 282882406
344512164 905088515 835526140 556540600 937043916 487971283 833486158 57482590 494918098 202120700 30359993 943075775 380255122 1531503 374064387 774602775 636340574 458251160 740900055 141530209 452174873 13951473 2436035 951012850 215373980 853054998 808319188 804745231 887255771 4...

output:

44566864

result:

ok "44566864"

Test #17:

score: 0
Accepted
time: 578ms
memory: 69576kb

input:

9525 711207059
974985974 432591104 388796632 334522147 480804980 27028826 326137823 637260286 793226967 218299097 601590857 978581249 915024156 15278973 55660443 499653722 794686634 892356216 545738393 188495925 306058813 524617629 472731740 68961852 537316801 445798311 726914543 182228803 450084661...

output:

163907546

result:

ok "163907546"

Test #18:

score: 0
Accepted
time: 579ms
memory: 70264kb

input:

25653 284755903
605459782 328689914 237034417 407470985 803227681 229649880 745160560 922070690 91535835 529444787 582887137 645490503 154825898 102655370 400820010 929737378 321628914 326461271 645544023 530428934 749877337 35283784 574431225 818314637 490663401 669945405 276913678 264745085 349350...

output:

48615466

result:

ok "48615466"

Test #19:

score: 0
Accepted
time: 618ms
memory: 71656kb

input:

49204 940175312
917595988 720224180 998292043 66981215 174071529 800014332 639589470 671194515 859253536 723916933 513329035 820269479 768182087 145685145 469605497 171042074 115006523 595855035 698778069 679440704 104221675 761971738 715710220 177487218 689202604 363639740 97633225 327083012 946735...

output:

35690494

result:

ok "35690494"

Test #20:

score: 0
Accepted
time: 604ms
memory: 70924kb

input:

46425 946401698
548069796 542694061 846529827 139930053 791461522 2635386 132241135 956004919 157562404 740095331 715963680 192211441 713016538 233061543 446168845 896093022 641948804 29960090 798583699 652777492 958105616 272637894 817409705 295436221 937516496 956383054 311195872 409599294 8460011...

output:

37816893

result:

ok "37816893"

Test #21:

score: 0
Accepted
time: 610ms
memory: 70872kb

input:

45804 962693577
547139825 70196651 694767612 917911601 40255294 541692929 551263872 535782614 455871273 387677508 697259960 227716915 247785571 615405232 791328413 326176677 873923793 95468927 603422037 699743209 811989556 78271341 919109190 413385225 554426607 844093659 861195007 787082868 74526650...

output:

37594987

result:

ok "37594987"

Test #22:

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

input:

43025 989976325
587679051 966295462 248038104 327296928 657645287 744313983 970286610 894221947 49147434 403855905 268490823 189593461 487587314 334185410 767891760 51227624 400866072 529573983 408260375 41676216 960840788 588937497 389404894 531334228 507773208 363208044 706161434 869599150 1312810...

output:

42569689

result:

ok "42569689"

Test #23:

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

input:

40246 901235456
586749079 788765344 801308598 105278474 906439060 283371525 757905566 473999642 347456303 715001595 544754395 930131644 432421765 421561807 113051327 776278572 927808353 300115527 508066004 15013004 109692019 468199873 491104379 575654303 756087100 955951358 624756788 247082723 20736...

output:

43371155

result:

ok "43371155"

Test #24:

score: 0
Accepted
time: 584ms
memory: 71868kb

input:

47468 912494588
217222888 316267934 280950162 178227313 523829052 117396360 881961012 758810046 645765172 26147283 747389039 892008190 672223507 435309277 458210895 206362227 454750633 734220584 312904342 61978720 258543251 978866029 961400084 398636015 709433700 843661963 469723215 624566297 106626...

output:

37262730

result:

ok "37262730"

Test #25:

score: 0
Accepted
time: 611ms
memory: 71424kb

input:

46847 918720974
552729406 507334036 129187947 956208861 67590116 320017414 300983748 338587741 239041332 42325680 318619902 927513665 912025250 522685674 139806950 931413175 613096693 799729420 486338900 403911728 743830973 489532184 63099568 811552310 31376520 436405276 19722350 707082578 79520458 ...

output:

37400312

result:

ok "37400312"

Test #26:

score: 0
Accepted
time: 598ms
memory: 70428kb

input:

41910 935012853
551799434 739869334 682458440 734190407 21416597 154042248 88602705 623398146 537350201 58504077 299916182 594422919 151826991 905029364 484966518 361496830 140038973 233834475 586144530 377248517 892682205 663761851 164799053 929501313 279690412 29148589 569721485 748129663 97878583...

output:

42423220

result:

ok "42423220"

Test #27:

score: 0
Accepted
time: 601ms
memory: 70036kb

input:

41289 941239238
182273243 267371924 530696225 143575734 933773882 61696010 507625442 276804769 835659070 369649767 502550826 261332173 391628734 623809541 830126086 86547777 666981254 667939532 685950160 424214233 746566145 174428007 635094758 47450316 528004304 916859195 488316840 125613236 1730185...

output:

43104373

result:

ok "43104373"

Test #28:

score: -100
Wrong Answer
time: 585ms
memory: 70300kb

input:

40668 973554733
181343272 458438026 378934009 216524573 182567654 895720846 631680888 856582465 133967939 385828164 73781689 296837647 336463184 6153230 806689434 811598725 898956243 733448368 785755789 766147241 895417377 980061455 736794243 460366611 481350905 509602508 333283266 208129518 4408801...

output:

45102844

result:

wrong answer 1st words differ - expected: '45102815', found: '45102844'