My Python3 code solves the 1st test case, but gives a 'Runtime error' for the 2nd. What may be the reason for this?

As for the algorithm, I try to find all the ways to partition bits among up to R cashiers.


from itertools import chain, combinations, combinations_with_replacement


class Cashier:
    __slots__ = ('max_bits', 'scan_time', 'packaging_time')

    def __init__(self, M, S, P):
        self.max_bits = M
        self.scan_time = S
        self.packaging_time = P


def main():
    T = int(input())  # the number of test cases

    for case in range(1, T+1):
        R, B, C = map(int, input().split())  # robot shoppers, bits, cashiers

        cashiers = []

        for _ in range(C):
            M, S, P = map(int, input().split())  # max number of bits, scan time per bit, packaging time
            cashier = Cashier(M, S, P)
            cashiers.append(cashier)

        res = float('inf')

        for num_cashiers in range(1, R+1):
            for sel_cashiers in combinations(cashiers, num_cashiers):
                for bits_bars in combinations_with_replacement(range(B+1), num_cashiers-1):
                    prev_bar = 0
                    times = []

                    for cashier, bar in zip(sel_cashiers, chain(bits_bars, (B,))):
                        num_bits = bar - prev_bar
                        prev_bar = bar
                        if num_bits > cashier.max_bits:
                            break
                        times.append(num_bits*cashier.scan_time + cashier.packaging_time)
                    else:
                        time = max(times)
                        if time < res:
                            res = time

        print('Case #{}: {}'.format(case, res))


main()

--
Regards,
  Eugene

--
You received this message because you are subscribed to the Google Groups "Google 
Code Jam" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-code/914b7f44-b1d9-f6bf-44f4-06e145ae09f0%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to