this is good problem.

https://codefights.com/challenge/X33imTX2FSqhSLTtJ

My code is

int c, i,t;
int MaxCupCakes(int N, int[] P, int K) {
for (; i < P.length; i++ ) {
t= (P[i] -c -1);
if(K<=t) break;
K=K-t;
c=P[i];
}
return c+K<= N ?c+K : -1;
}

best code is here

int MaxCupCakes(int n, int[] P, int k) {
for(int i:P)
if(i<=k)k++;
return k>n ?-1 : k ;
}

Max and Caroline, two girls in their mid-twenties, work at a Brooklyn restaurant as waitresses. Together, they dream of starting up their cupcake business.

One day Max comes with a box of `N`

cupcakes numbered according to their quality from `1`

to `N`

. Caroline has a list of cupcakes `P`

that should be removed from the box.

Your task it to find the quality of the `K`^{th}

cupcake after the cupcakes from the list `P`

are removed from the box.

If it is not possible to get the `K`^{th}

cupcake, return `-1`

instead.

**Example**

For `N = 4`

, `P = [1]`

and `K = 2`

, the output should be
`MaxCupCakes(N, P, K) = 3`

.

Initially there were cupcakes of the following quality:
`1, 2, 3, 4`

.
According to `P`

, the cupcake with quality `1`

should be removed, so only the following cupcakes are left:
`2, 3, 4`

.
The `2`^{nd}

cupcake in this list is `3`

, thus the output should be `3`

as well.

**[input] integer N**

The number of cupcakes, `4 ≤ N ≤ 10`^{9}

.

**[input] array.integer P**

A sorted array of positive integers, the cupcakes to be removed.
`0 ≤ P.length ≤ 500`

,
`1 ≤ P[i] ≤ N`

.

**[input] integer K**

A positive integer, the 1-based number of the cupcake to find.

**[output] integer**

The quality of the `K`^{th}

cupcake, or `-1`

if less than `K`

cupcakes are left.

## No comments:

## Post a Comment