Search code examples
pythontestinglogic

DMOJ COCI '08 Contest 1 #2


I have figured out the bulk of the logic of this problem but i can't figure out why my code fails one of the tests. If somebody can help me that would be great. Here's my code:

n = int(input())
ans = input()
adrian = 'ABC'
bruno = 'BABC'
goran = 'CCAABB'
score_adrian = 0
score_bruno = 0
score_goran = 0
output = ''
for i in range(n):
    if ans[i] == adrian[i % 3]:
        score_adrian = score_adrian + 1
    if ans[i] == bruno[i % 4]:
        score_bruno = score_bruno + 1
    if ans[i] == goran[i % 6]:
        score_goran = score_goran + 1

if score_adrian > score_bruno and score_adrian > score_goran:
    output = str(score_adrian) + '\nAdrian'
elif score_bruno > score_adrian and score_bruno > score_goran:
    output = str(score_bruno) + '\nBruno'
elif score_goran > score_adrian and score_goran > score_bruno:
    output = str(score_goran) + '\nGoran'

elif score_adrian == score_bruno and score_adrian > score_goran:
    output = str(score_adrian) + '\nAdrian\nBruno'
elif score_adrian == score_goran and score_adrian > score_bruno:
    output = str(score_goran) + '\nAndrian\nGoran'
elif score_goran == score_bruno and score_bruno > score_adrian:
    output = str(score_goran) + '\nBruno\nGoran'
elif score_adrian == score_bruno and score_bruno == score_goran:
    output = str(score_adrian) + '\nAdrian\nBruno\nGoran'
print(output)

thanks in advance :-)


Solution

  • Would this be simpler?

    n = int(input())
    ans = input()
    adrian = 'ABC'
    bruno = 'BABC'
    goran = 'CCAABB'
    score_adrian = 0
    score_bruno = 0
    score_goran = 0
    output = ''
    for i in range(n):
        if ans[i] == adrian[i % 3]:
            score_adrian = score_adrian + 1
        if ans[i] == bruno[i % 4]:
            score_bruno = score_bruno + 1
        if ans[i] == goran[i % 6]:
            score_goran = score_goran + 1
    max_number = max(score_adrian, score_bruno, score_goran)
    print(max_number)
    if score_adrian == max_number:
        print("Adrian")
    if score_bruno == max_number:
        print("Bruno")
    if score_goran == max_number:
        print("Goran")