 # Contest Code:PRACTICE Problem Code:TRAINSET

I was trying to solve the above problem, but on submitting I am getting Time Limit Exceed error. I have tried test cases, and its giving me the desired output. But, on submitting facing this Time Limit issue.
Can someone please help me out.

This is the code which I wrote -:
try:

    T = int(input())

for k in range(0,T):
N = int(input())

alpha = []
for j in range(0,N):
word,boolean = input().split()
boolean = int(boolean)

if len(alpha) == 0:
alpha.append([word,boolean])
else:
for i in alpha:
if i == word and i == boolean:
alpha.append([word,boolean])
break
elif i == word and i !=boolean:
continue
else:
alpha.append([word,boolean])
break

print(len(alpha))

except:
pass


This is the link for my solution
https://www.codechef.com/viewsolution/35226030

Thanks in advance.

1 Like

I don’t really get your logic or how it’s correct (it seems like it shouldn’t be), but if you have \frac{n}{2} pairs of (a, 0) and \frac{n}{2} pairs of (a, 1), I think that will cause your program to be O(n^2)

See this the screenshot, I have tried the sample input given in the example and I got the desired outputs, even it takes less time.
Please help me, why I am getting such a error.

You should read my comment…

Hey, I did this
my solution link: https://www.codechef.com/viewsolution/32518515

# cook your dish here
for _ in range(int(input())):
n=int(input())
d={}
dd={}
for i in range(n):
l=input().split()
if l in d:
if int(l)==0:
d[l]+=1
else:
d[l]=0
if int(l)==0:
d[l]+=1
if l in dd:
if int(l)==1:
dd[l]+=1
else:
dd[l]=0
if int(l)==1:
dd[l]+=1
l=list(d.values())
k=list(dd.values())
s=0
for i in range(len(l)):
s=s+max(l[i],k[i])
print(s)


Please let me know if you don’t get anything.
Happy to help.

1 Like