-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolution.py
43 lines (32 loc) · 1.23 KB
/
solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/python3
'''
Problem A. Alien Numbers (https://code.google.com/codejam/contest/32003/dashboard)
RUN: solution.py < input_file > output_file
'''
import math
def convert_to_base10(number, language):
'''Convert a number in a given language to base 10'''
base10_number = 0
digits = list(language)
base = len(language)
for i, val in enumerate(number[::-1]):
base10_number += digits.index(val) * base ** i
return base10_number
def convert_to_language(number, language):
'''Convert a number un base 10 to a given language'''
target_number = ""
digits = list(language)
base = len(language)
while number > 0:
target_number += digits[number % base]
number = math.floor(number / base)
target_number = target_number[::-1]
return target_number
def main():
cases = int(input()) # read a line with a single integer
for i in range(1, cases + 1): # for each data line
alien_number, source_language, target_language = [s for s in input().split(" ")]
base10_number = convert_to_base10(alien_number, source_language)
target_number = convert_to_language(base10_number, target_language)
print("Case #{}: {}".format(i, target_number))
main()