DMOJ COCI '08 比赛 1 #2

DMOJ COCI '08 Contest 1 #2

我已经弄清楚了这个 problem 的大部分逻辑,但我无法弄清楚为什么我的代码无法通过其中一项测试。如果有人可以帮助我,那就太好了。这是我的代码:

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)

提前致谢:-)

这样会更简单吗?

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")