Hello everyone,

I have tried to solve the Cryptopangram problem for the recent CodeJam, but I 
have no idea why my code is giving me a Runtime Error. The code already passed 
the sample test case, though do note that I have not tried with any other test 
cases just yet.

I have analyzed for any possible mis-indent or any possible zero-division or 
mathematically invalid operations in the code. However, it is still producing 
the Runtime Error on the CodeJam interface.

Any discussions for helping me understand the problem is greatly appreciated, 
and looking forward to your feedback on my code.

cryptopangrams.py:

import string

#find GCD between 2 integers
def gcd_euclid(n1, n2):

    #n2 being 0 means remainder == 0
    if n2 == 0:
        return n1
    return gcd_euclid(n2, n1 % n2)

test_cases = int(input())

for T in range(0, test_cases):
    N, L = map(int, input().rstrip().split(' '))
    cipher_values = list(map(int, input().rstrip().split(' ')))

    #get the prime numbers that make up cipher_values
    prime_list = []
    for i in range(0, L - 1):

        #find prime value commonly shared by current and next cipher value
        common_prime = gcd_euclid(cipher_values[i], cipher_values[i+1])

        #edge case for i at start of cipher_value list
        if i == 0:
            prime_list.append(int(cipher_values[i] / common_prime))
        
        prime_list.append(common_prime)

        #edge case for when i at end of cipher_value list
        if i == (L - 2):
            prime_list.append(int(cipher_values[i + 1] / common_prime))

    #get all alphabets into a string
    alphabets = string.ascii_uppercase
    alpha_id = 0

    #prepare dictionary for mapping between prime and alphabets
    prime_dict = {}

    #get a sorted prime_list first
    prime_list_sorted = sorted(prime_list.copy())

    #map the sorted prime numbers to the appropriate alphabets
    for p in prime_list_sorted:
        if p not in prime_dict:
            prime_dict[p] = alphabets[alpha_id]
            alpha_id += 1

    #Use mapping to get alphabetical values of all primes in the prime_list     
   
    plaintext = ''
    for t in range(0, L + 1):
        plaintext += prime_dict[prime_list[t]]

    print("Case #{}: {}".format(T + 1, plaintext)) 

-- 
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/0d1a6381-969e-4e16-be4e-7e334446a7dc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to