TOPIC

Wrong answer 40% ?

Marcos de Oliveira de Jesus asked 1 year ago

Já fiz e refiz o programa de duas formas, e testei ambas as formas com todas entradas e saidas na pagina do problema, no forum e no uDebug também, e tudo dá 100% perfeito. Não faço idéia do que pode estar errado.

Primeira forma:

Question solved. Code removed.

Segunda forma:

Question solved. Code removed.

This topic was solved and cannot recieve new replies.

  • Marcos de Oliveira de Jesus replied 1 year ago

    Descobri o erro. Talvez a entrada não fosse em ordem de problemas, por exemplo:

    3 A 1 incorrect B 2 incorrect A 3 correct

    Eu adicionava a quantidade de letras erradas numa lista (letras), Por exemplo, ficaria [A, B] com a entrada acima. E depois eu removia o ultimo elemento e adicionava os 20 pontos. O problema é que o ultimo da lista pode não ter relação com a letra com a qual eu estou lidando no momento. Corrigi adicionando um loop que percorre a lista e remove especificamente uma letra que seja igual a que eu estou lidando no momento.

    while True:
        try:
            N = int(input())
            if N == 0:
                break
            S = 0
            P = 0
            letras = []
            check = []
            while N > 0:
                vals = input().split()
                if vals[2] == "correct" and vals[0] not in check:
                    S+=1
                    P+=int(vals[1])
                    check.append(vals[0])
                while vals[2] == "correct" and vals[0] in letras:
                    P+=20
                    t = 0
                    while t < len(letras):
                        if letras[t] == vals[0]:
                            del letras[t]
                            break
                        t+=1
                if vals[2] == "incorrect":
                    letras.append(vals[0])
                N-=1
            print("{} {}".format(S,P))
        except:
            break