# why is it wrong

question

``````i = (input())
d=[]
for k in range(int(i)):
a = input()
b = a.split(" ")
for j in range(len(b)):
if int(b[j]) == (len(b)-1):
b.pop(j)
break
d.append(int(max(b)))
for u in d:
print(u)
``````

this is the question
and this is my answer in python why when i submitting it is not accepting my code

1 Like

It’s giving wrong answer for this:

``````10 6 2 8 3 4 3 3 10 6 4
``````

Answer should be 10 not 8. It’s happening because elements in b are strings and not int so it’s taking ‘8’ > ‘10’.

1 Like

The error is with the line:

``````
if int(b[j]) == (len(b)-1):
b.pop(j)

``````

That is, since you are comparing the element j of array b, if you update the array b (by the pop function) the length changes too. Meaning, there may be another number that will be popped instead of only the value N-1.

Fix this by making a variable assigned with the initial value of len(b)-1 so that it will not change throughout the loop.

https://www.codechef.com/viewsolution/14733406

An easier way is to use remove(). That is b.remove(len(b)-1). It removes the first occurrence of the value in the list. You wouldn’t even need a loop for it!

Hope it helps~!

thanks you both for helping now i have do it.

``````i = (input())
d=[]
for k in range(int(i)):
a = input()
b = a.split(" ")
c=[]
for j in b:
c.append(int(j))
c.remove(len(c)-1)
d.append(int(max(c)))
for u in d:
print(u)``````
//