Cosa c'è di sbagliato nel codice? Risulta in RE in google Kickstart 2020 Round A

Aug 22 2020

Cosa mi manca qui in questo codice? Risulta in RE in Kickstart 2020 ma quando provo sul mio computer locale o sul compilatore di hackereath (simile al compilatore codejam) il codice funziona bene.
collegamento problema:https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc7/00000000001d3f56

def solve(a,balance):
    a.sort()
    house_Can_buy=0
    for i in a:
        if i<=balance:
            house_Can_buy+=1
            balance-=i
    return house_Can_buy
def main():
    a=int(input())
    arr2,res=[],[]
    for i in range(a):
        _,balance=list(map(int,input().split()))
        arr2=list(map(int,input().split()))
        result=solve(arr2,balance)
        res.append(result)
    for i,j in enumerate (res):
        print(f'Case #{i+1}: {j}')
main()

Risposte

1 YashShah Aug 22 2020 at 07:43

All'istruzione print in cui l'uso di f risulta in RE.

Nell'istruzione print, dovresti usare format per produrre i + 1 e j.

Per superare tutti i casi di test è necessario ordinare l'array per calcolare il numero di case con il metodo avido.

def solve(a,balance):
    house_Can_buy=0
    a.sort()
    for i in a:
        if i<=balance:
            house_Can_buy+=1
            balance-=i
    return house_Can_buy

def main():
    a=int(input())
    arr2,res=[],[]
    for i in range(a):
        _,balance=list(map(int,input().split()))
        arr2=list(map(int,input().split()))
        result=solve(arr2,balance)
        res.append(result)
    for i,j in enumerate (res):
        print('Case #{}: {}'.format(i+1,j))
main()