CSES - KILO 2017 4/5 - Results
Submission details
Task:Uolevi and Market
Sender:liianvaikeitatehtäviä
Submission time:2017-09-26 17:07:42 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.03 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.27 sdetails
#4ACCEPTED0.34 sdetails
#5ACCEPTED0.31 sdetails
#6ACCEPTED0.27 sdetails
#7ACCEPTED0.32 sdetails
#8ACCEPTED0.27 sdetails
#9ACCEPTED0.27 sdetails
#10ACCEPTED0.29 sdetails
#11ACCEPTED0.29 sdetails
#12ACCEPTED0.29 sdetails
#13ACCEPTED0.28 sdetails
#14ACCEPTED0.28 sdetails
#15ACCEPTED0.28 sdetails
#16ACCEPTED0.29 sdetails
#17ACCEPTED0.27 sdetails
#18ACCEPTED0.26 sdetails
#19ACCEPTED0.25 sdetails
#20ACCEPTED0.25 sdetails
#21ACCEPTED0.26 sdetails
#22ACCEPTED0.26 sdetails
#23ACCEPTED0.27 sdetails
#24ACCEPTED0.29 sdetails
#25ACCEPTED0.25 sdetails
#26ACCEPTED0.25 sdetails
#27ACCEPTED0.29 sdetails
#28ACCEPTED0.27 sdetails
#29ACCEPTED0.26 sdetails
#30ACCEPTED0.24 sdetails
#31ACCEPTED0.25 sdetails
#32ACCEPTED0.28 sdetails
#33ACCEPTED0.30 sdetails
#34ACCEPTED0.24 sdetails
#35ACCEPTED0.31 sdetails
#36ACCEPTED0.31 sdetails
#37ACCEPTED0.28 sdetails
#38ACCEPTED0.26 sdetails
#39ACCEPTED0.28 sdetails
#40ACCEPTED0.24 sdetails
#41ACCEPTED0.25 sdetails
#42ACCEPTED0.28 sdetails
#43ACCEPTED0.25 sdetails
#44ACCEPTED0.25 sdetails
#45ACCEPTED0.23 sdetails
#46ACCEPTED0.27 sdetails
#47ACCEPTED0.26 sdetails
#48ACCEPTED0.24 sdetails
#49ACCEPTED0.24 sdetails
#50ACCEPTED0.29 sdetails
#51ACCEPTED0.25 sdetails
#52ACCEPTED0.28 sdetails
#53ACCEPTED0.23 sdetails
#54ACCEPTED0.28 sdetails
#55ACCEPTED0.32 sdetails
#56ACCEPTED0.26 sdetails
#57ACCEPTED0.28 sdetails
#58ACCEPTED0.29 sdetails
#59ACCEPTED0.28 sdetails
#60ACCEPTED0.27 sdetails
#61ACCEPTED0.28 sdetails
#62ACCEPTED0.28 sdetails
#63ACCEPTED0.27 sdetails

Code

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll t[1010101];
ll n,k;
ll f(int x, ll lim, ll & tot) {
	if(tot >= k) return 0;
	for(int i = 0; i < x; ++i) {
		if(tot > k) break;
		if(t[i] <= lim) f(i, lim-t[i], ++tot);
		else break;
	}
	return 0;
}
int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>k;
	for(int i = 0; i < n; ++i) {
		cin>>t[i];
	}
	sort(t, t+n);
	ll lo = 1;
	ll hi = 1e14;
	ll best = 1e14;
	while(lo <= hi) {
		ll mid = (lo+hi)/2;
		ll tot = 0;
		for(int i = 0; i < n; ++i) {
			if(t[i] <= mid) f(i, mid-t[i], ++tot);
			else break;
			if(tot > k) break;
		}
		if(tot >= k) {
			best = mid;
			hi = mid-1;
		}
		else {
			lo = mid+1;
		}
	}
	cout<<best<<endl;

}

Test details

Test 1

Verdict: ACCEPTED

input
5 30
4 2 1 16 8

correct output
30

user output
30

Test 2

Verdict: ACCEPTED

input
4 5
1 1 2 2

correct output
2

user output
2

Test 3

Verdict: ACCEPTED

input
200000 1000000
35914537 42647291 87909684 169...

correct output
40048

user output
40048

Test 4

Verdict: ACCEPTED

input
200000 999997
61014077 43650830 20341927 512...

correct output
26287

user output
26287

Test 5

Verdict: ACCEPTED

input
200000 999994
70240264 96093067 55381233 200...

correct output
47716

user output
47716

Test 6

Verdict: ACCEPTED

input
200000 1000000
35649442 14455142 42097661 264...

correct output
37463

user output
37463

Test 7

Verdict: ACCEPTED

input
200000 999999
13117573 51346250 57165442 573...

correct output
48524

user output
48524

Test 8

Verdict: ACCEPTED

input
200000 1000000
74133476 67906882 94159121 910...

correct output
100448091

user output
100448091

Test 9

Verdict: ACCEPTED

input
200000 999995
93614670 59747155 91096808 981...

correct output
100439561

user output
100439561

Test 10

Verdict: ACCEPTED

input
200000 999995
77940809 63268835 58552239 837...

correct output
100435546

user output
100435546

Test 11

Verdict: ACCEPTED

input
200000 999999
93402872 57557618 74759064 708...

correct output
100441107

user output
100441107

Test 12

Verdict: ACCEPTED

input
200000 999991
83612399 82124316 69515438 975...

correct output
100450517

user output
100450517

Test 13

Verdict: ACCEPTED

input
200000 999999
53962426 90332194 89669526 527...

correct output
67278906

user output
67278906

Test 14

Verdict: ACCEPTED

input
200000 999994
78077015 71621402 94228781 627...

correct output
67288062

user output
67288062

Test 15

Verdict: ACCEPTED

input
200000 999998
61448236 93649865 83826482 685...

correct output
67289186

user output
67289186

Test 16

Verdict: ACCEPTED

input
200000 999998
42674581 80397818 85436433 525...

correct output
67277799

user output
67277799

Test 17

Verdict: ACCEPTED

input
200000 999992
87054268 82500803 58062748 907...

correct output
67292946

user output
67292946

Test 18

Verdict: ACCEPTED

input
118 999990
24606314 26881915 83697723 314...

correct output
59893004

user output
59893004

Test 19

Verdict: ACCEPTED

input
114 999990
7508556 44887712 13807527 1373...

correct output
58898150

user output
58898150

Test 20

Verdict: ACCEPTED

input
60 999999
70830090 54903764 84787294 592...

correct output
131136907

user output
131136907

Test 21

Verdict: ACCEPTED

input
60 999995
26547370 1696909 47532807 4204...

correct output
120528479

user output
120528479

Test 22

Verdict: ACCEPTED

input
82 999991
30344020 85572550 14839656 688...

correct output
84360885

user output
84360885

Test 23

Verdict: ACCEPTED

input
115 999995
54759837 94799018 75148969 609...

correct output
265227849

user output
265227849

Test 24

Verdict: ACCEPTED

input
92 999998
83834052 81737375 96920614 974...

correct output
290583555

user output
290583555

Test 25

Verdict: ACCEPTED

input
118 999990
67250889 58936420 59051268 534...

correct output
259448394

user output
259448394

Test 26

Verdict: ACCEPTED

input
84 1000000
93928620 74036291 93350031 581...

correct output
298797537

user output
298797537

Test 27

Verdict: ACCEPTED

input
116 1000000
57328438 70122878 82388890 502...

correct output
257886720

user output
257886720

Test 28

Verdict: ACCEPTED

input
64 999994
66326096 74371473 35345424 605...

correct output
261238357

user output
261238357

Test 29

Verdict: ACCEPTED

input
101 999991
76537247 62075235 55562035 409...

correct output
223349203

user output
223349203

Test 30

Verdict: ACCEPTED

input
96 999992
54160104 62176925 57826972 657...

correct output
222688987

user output
222688987

Test 31

Verdict: ACCEPTED

input
93 999997
85439260 80904987 73271551 933...

correct output
227876438

user output
227876438

Test 32

Verdict: ACCEPTED

input
92 999995
77813962 94408431 56259996 683...

correct output
234405809

user output
234405809

Test 33

Verdict: ACCEPTED

input
112 999990
49974705 72633033 41677908 918...

correct output
178928274

user output
178928274

Test 34

Verdict: ACCEPTED

input
105 999992
76300298 77811005 27684325 765...

correct output
186022493

user output
186022493

Test 35

Verdict: ACCEPTED

input
71 999999
62693484 87177530 45066123 393...

correct output
215438196

user output
215438196

Test 36

Verdict: ACCEPTED

input
116 1000000
90037623 54173518 87617924 724...

correct output
178731024

user output
178731024

Test 37

Verdict: ACCEPTED

input
106 999998
36516564 42111213 44365846 869...

correct output
194634751

user output
194634751

Test 38

Verdict: ACCEPTED

input
840 999999
26237876 15602392 84690614 992...

correct output
5721937

user output
5721937

Test 39

Verdict: ACCEPTED

input
943 999993
56464921 36827489 64259440 549...

correct output
6098943

user output
6098943

Test 40

Verdict: ACCEPTED

input
1842 999999
22720484 18646774 73741679 151...

correct output
4474692

user output
4474692

Test 41

Verdict: ACCEPTED

input
1279 999994
94762285 14088940 1644295 8200...

correct output
4231961

user output
4231961

Test 42

Verdict: ACCEPTED

input
1697 999998
97851850 63055272 31579609 528...

correct output
4628295

user output
4628295

Test 43

Verdict: ACCEPTED

input
807 999994
92111097 66175026 65616513 950...

correct output
170077689

user output
170077689

Test 44

Verdict: ACCEPTED

input
1419 999994
50559319 94606341 98969606 999...

correct output
158038991

user output
158038991

Test 45

Verdict: ACCEPTED

input
1453 999998
53864345 60040214 63738530 676...

correct output
158550902

user output
158550902

Test 46

Verdict: ACCEPTED

input
1252 999999
90006245 55183477 96168215 564...

correct output
159567145

user output
159567145

Test 47

Verdict: ACCEPTED

input
1341 999990
87329698 93796250 60725827 954...

correct output
159902950

user output
159902950

Test 48

Verdict: ACCEPTED

input
1440 999997
97841217 83382136 35620107 810...

correct output
113524436

user output
113524436

Test 49

Verdict: ACCEPTED

input
1826 999991
54543844 47545004 40426026 510...

correct output
109879435

user output
109879435

Test 50

Verdict: ACCEPTED

input
887 1000000
34460498 71787503 33446890 636...

correct output
122498648

user output
122498648

Test 51

Verdict: ACCEPTED

input
1170 999990
85096647 86660620 49474653 542...

correct output
115613417

user output
115613417

Test 52

Verdict: ACCEPTED

input
835 999993
54480677 51249282 39409673 833...

correct output
125841387

user output
125841387

Test 53

Verdict: ACCEPTED

input
200000 999995
100000000 100000000 100000000 ...

correct output
200000000

user output
200000000

Test 54

Verdict: ACCEPTED

input
200000 999994
2761 2821 4103 1824 1499 2287 ...

correct output
1485

user output
1485

Test 55

Verdict: ACCEPTED

input
200000 1000000
2242 3461 1843 4422 3117 1682 ...

correct output
1484

user output
1484

Test 56

Verdict: ACCEPTED

input
200000 999996
1727 4798 1438 4369 2651 4268 ...

correct output
1497

user output
1497

Test 57

Verdict: ACCEPTED

input
200000 999990
3944 1053 4668 3351 3236 4781 ...

correct output
1496

user output
1496

Test 58

Verdict: ACCEPTED

input
200000 999996
1964 3445 3391 4307 2742 3853 ...

correct output
1523

user output
1523

Test 59

Verdict: ACCEPTED

input
200000 999993
3051 4465 4099 2105 2142 3553 ...

correct output
1493

user output
1493

Test 60

Verdict: ACCEPTED

input
200000 999990
2957 3354 3456 1009 4854 4747 ...

correct output
1543

user output
1543

Test 61

Verdict: ACCEPTED

input
200000 999998
1371 2549 3797 3247 3424 2800 ...

correct output
1506

user output
1506

Test 62

Verdict: ACCEPTED

input
200000 999992
4081 4463 3326 4078 3790 4232 ...

correct output
1544

user output
1544

Test 63

Verdict: ACCEPTED

input
200000 999994
2660 2489 2599 2268 2084 3274 ...

correct output
1484

user output
1484