List related problem in python

I’ve some issue about list related problem in python.Let me describe this problem first …

“Contestant who earns a score equal to or greater than the k -th place finisher’s score will advance to the next round, as long as the contestant earns a positive score…” — an excerpt from contest rules.

A total of n participants took part in the contest ( nk ), and you already know their scores. Calculate how many participants will advance to the next round.

Input

The first line of the input contains two integers n and k (1 ≤ kn ≤ 50) separated by a single space.

The second line contains n space-separated integers a 1, a 2, …, a n (0 ≤ a i ≤ 100), where a i is the score earned by the participant who got the i -th place. The given sequence is non-increasing (that is, for all i from 1 to n - 1 the following condition is fulfilled: a ia i + 1).

Output

Output the number of participants who advance to the next round.
input:

8 5
10 9 8 7 7 7 5 5

output:
6
input:

4 2
0 0 0 0

output:
0

Note

In the first example the participant on the 5th place earned 7 points. As the participant on the 6th place also earned 7 points, there are 6 advancers.

In the second example nobody got a positive score.

According to the Test case,


input:

17 14
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

output:
14
But 14 in which logic??
According to what i understand it it should be 2.Because,16 and 15 will go in next round,isn’t it?
Here is my code:

a,b = input().split()
c = list(map(int,input().split()))


if c.count(int(b)) != 0:
    if c.count(int(b)) == len(c):
        print(len(c))
    else:
        cc = c[:c.index(int(b))]
        print(len(cc))
else:
    if c.count(c[0]) == len(c) and c[0] != 0:
        print(len(c))
    else:
        print(0)

How can i fix this?

in the first line of the input you have first the number of participants then the participant position you need to use to pass or reject the others (so the second number is NOT a SCORE)

so in the first example you have

8 5
10 9 8 7 7 7 5 5

so, 8 participants, and you need to use the score of the 5th, which is 7, so everyone that have a score equal or higher than 7 can pass.

with

17 14
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

you have 17 participants and you need to look at the score of the 14th, which is 3, so everyone with a score equal or higher than 3 can pass

1 Like

As far as i can read the score of the participant has to be greater than or equal to the score of the k-th finisher’s score.
It means that , in the test case, all participant with a score greater than the 14th will pass, and that value is 3^^
As far as i understand you simply need to check how many values equal to the k-th score follows it, then add the k position and you get your value ^^
Just a random thought! :wink:

1 Like

Thank you so much ieahleen :sparkling_heart: