Task: | Uolevi and Market |
Sender: | team univelka |
Submission time: | 2017-09-26 17:58:49 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | ACCEPTED | 0.37 s | details |
#4 | ACCEPTED | 0.39 s | details |
#5 | ACCEPTED | 0.34 s | details |
#6 | ACCEPTED | 0.35 s | details |
#7 | ACCEPTED | 0.36 s | details |
#8 | ACCEPTED | 0.32 s | details |
#9 | ACCEPTED | 0.35 s | details |
#10 | ACCEPTED | 0.31 s | details |
#11 | ACCEPTED | 0.31 s | details |
#12 | ACCEPTED | 0.32 s | details |
#13 | ACCEPTED | 0.34 s | details |
#14 | ACCEPTED | 0.34 s | details |
#15 | ACCEPTED | 0.34 s | details |
#16 | ACCEPTED | 0.30 s | details |
#17 | ACCEPTED | 0.31 s | details |
#18 | ACCEPTED | 0.30 s | details |
#19 | ACCEPTED | 0.33 s | details |
#20 | ACCEPTED | 0.29 s | details |
#21 | ACCEPTED | 0.31 s | details |
#22 | ACCEPTED | 0.30 s | details |
#23 | ACCEPTED | 0.26 s | details |
#24 | ACCEPTED | 0.28 s | details |
#25 | ACCEPTED | 0.29 s | details |
#26 | ACCEPTED | 0.26 s | details |
#27 | ACCEPTED | 0.31 s | details |
#28 | ACCEPTED | 0.27 s | details |
#29 | ACCEPTED | 0.27 s | details |
#30 | ACCEPTED | 0.26 s | details |
#31 | ACCEPTED | 0.33 s | details |
#32 | ACCEPTED | 0.29 s | details |
#33 | ACCEPTED | 0.34 s | details |
#34 | ACCEPTED | 0.27 s | details |
#35 | ACCEPTED | 0.28 s | details |
#36 | ACCEPTED | 0.32 s | details |
#37 | ACCEPTED | 0.31 s | details |
#38 | ACCEPTED | 0.31 s | details |
#39 | ACCEPTED | 0.31 s | details |
#40 | ACCEPTED | 0.31 s | details |
#41 | ACCEPTED | 0.30 s | details |
#42 | ACCEPTED | 0.30 s | details |
#43 | ACCEPTED | 0.27 s | details |
#44 | ACCEPTED | 0.28 s | details |
#45 | ACCEPTED | 0.28 s | details |
#46 | ACCEPTED | 0.29 s | details |
#47 | ACCEPTED | 0.29 s | details |
#48 | ACCEPTED | 0.29 s | details |
#49 | ACCEPTED | 0.29 s | details |
#50 | ACCEPTED | 0.33 s | details |
#51 | ACCEPTED | 0.29 s | details |
#52 | ACCEPTED | 0.29 s | details |
#53 | ACCEPTED | 0.26 s | details |
#54 | ACCEPTED | 0.40 s | details |
#55 | ACCEPTED | 0.36 s | details |
#56 | ACCEPTED | 0.40 s | details |
#57 | ACCEPTED | 0.37 s | details |
#58 | ACCEPTED | 0.36 s | details |
#59 | ACCEPTED | 0.41 s | details |
#60 | ACCEPTED | 0.36 s | details |
#61 | ACCEPTED | 0.39 s | details |
#62 | ACCEPTED | 0.37 s | details |
#63 | ACCEPTED | 0.44 s | details |
Compiler report
input/code.cpp: In function 'int can(long long int, int, int)': input/code.cpp:12:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if ( (i >= costs.size()) || (costs[i] > lim) ) return 1; // HOLDS ^
Code
#include <iostream> #include <vector> #include <algorithm> const int N = 2 * 1e5; const long long P = 1e8; std::vector<int> costs; // Counts empty // Time complexity: T() <= 2 * returned value int can(long long lim, int i, int k) { if ( (i >= costs.size()) || (costs[i] > lim) ) return 1; // HOLDS int total = can(lim - costs[i], i+1, k); if (total >= k) return k; return total + can(lim, i+1, k-total); } int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); int n, k; std::cin >> n >> k; for (int i = 0; i < n; ++i) { int val; std::cin >> val; costs.push_back(val); } std::sort(costs.begin(), costs.end()); long long min = 1; long long max = N*P; while(min != max) { long long mid = (min + max + 1) / 2; if (can(mid, 0, k+1) >= k+1) { max = mid - 1; } else { min = mid; } } std::cout << min+1 << '\n'; }
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 |