Following program is for http://code.google.com/codejam/contest/351101/dashboard#s=p2
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 7 15:40:09 2015
@author: hpatil
"""
import sys
def read_file( input_file, output_file):
sys.stdin = open(input_file)
if(output_file != '' ):
sys.stdout = open(output_file,"w+")
read_input()
def solver(line):
last_digit=10
for i in line:
#print(i)
#print(len(line))
digit, mystring = digit2string(i)
if(last_digit==digit):
print(' ',end='')
print(mystring,end='')
last_digit=digit
print()
return
def digit2string(char):
dial = [
[' '],
[],
['a','b','c'],
['d','e','f'],
['g','h','i'],
['j','k','l'],
['m','n','o'],
['p','q','r','s'],
['t','u','v'],
['w','x','y','z'],
]
mystring = ""
for digit in range(len(dial)):
for repeat in range(len(dial[digit])):
if(char==dial[digit][repeat]):
for times in range(repeat+1):
mystring+=str(digit)
return digit,mystring
def read_input():
with sys.stdin as file:
testCases = int(file.readline())
for test in range(testCases):
print("Case #{}: ".format(test+1), end="")
line = file.readline().strip('\n')
solver(line)
#read_file('input','')
read_input()
This one is for with integer reading for http://code.google.com/codejam/contest/351101/dashboard
# -*- coding: utf-8 -*-
__author__ = 'hpatil'
import sys
def show_graph(x,y):
import matplotlib.pyplot as plt
plt.plot (x, y)
plt.grid(True)
plt.show()
def solver(credit, nItems, items):
for i in range(nItems):
for j in range(i+1,nItems):
sum = items[i] + items[j]
if( sum == credit):
print(i+1,j+1)
return
def set_io( input_file, output_file):
sys.stdin = open(input_file)
sys.stdout = open(output_file,"w")
def read_input():
with sys.stdin as file:
testCases = int(file.readline())
for test in range(testCases):
print("Case #{}: ".format(test+1), end="")
credit = int(file.readline())
nItems = int(file.readline())
items = list(map(int,file.readline().split()))
show_graph(range(len(items)), items)
solver(credit, nItems, items)
set_io('input','out')
read_input()
Following program is for http://code.google.com/codejam/contest/3214486/dashboard which took me a loooooong time
# -*- coding: utf-8 -*- """ Created on Wed Apr 8 13:08:15 2015 @author: hpatil Solution to problem : http://code.google.com/codejam/contest/3214486/dashboard """ lit = [ #['abcdefg'] '1111110', '0110000', '1101101', '1111001', '0110011', '1011011', '1011111', '1110000', '1111111', '1111011' ] def display_calci(string): if(string=="ERROR!"): print(string) else: display = list(" ") print(''.join(display)) # line 1 if(string[5] =='1'): display[0]='|' if(string[0] =='1'): display[1]='^' if(string[6] =='1'): display[2]='_' if(string[1] =='1'): display[3]='|' display[4]='\n' if(string[4] =='1'): display[5]='|' if(string[3] =='1'): display[6]='_' display[7]='_' if(string[2] =='1'): display[8]='|' print(''.join(display)) def isDigitFeasible(active, disp_digit, digit): for led in range(7): if(active[led]=='1'): if( disp_digit[led] != lit[digit][led]): return 0 return 1 def get_active_leds(active, disp_digits): active= list(active) count = int(disp_digits[0]) for digit in range(1,count+1): for led in range(len(disp_digits[digit])): if(disp_digits[digit][led]=='1' ): active[led]='1' return ''.join(active) def led_unused(active, disp_digits, possible_digit): not_used = list('1111111') active= list(active) count = int(disp_digits[0]) for digit in range(1,count+1): possible_digit= (possible_digit+1)%10 for led in range(len(lit[possible_digit])): if(lit[possible_digit][led]=='1' ): not_used[led]='0' return ''.join(not_used) def print_digit(active, disp_digits, digit): result_string = "" unused = led_unused(active, disp_digits, digit) for led in range(len(active)): if(active[led]=='1'): result_string += lit[digit][led] else: if(lit[digit][led] == '1'): if(unused[led]=='1'): return "ERROR!" else: result_string += '0' else: result_string += '0' return result_string def get_possible_digits(active, disp_digit, possible): possible_return = [ ] for digit in possible: if(isDigitFeasible(active, disp_digit, digit)): possible_return.append(digit) return possible_return def solver(disp_digits): active= list('0000000') active = get_active_leds(active,disp_digits) if(debug): display_calci(active) count = int(disp_digits[0]) possible = [9,8,7,6,5,4,3,2,1,0] for digit in range(1,count+1): possible = get_possible_digits(active,disp_digits[digit], possible) possible = list(map(lambda x: (x-1) % 10, possible)) if(debug): print(possible) possible_soln = list(map(lambda x: print_digit(active,disp_digits,x), possible)) if(debug): print(possible_soln) soln_set = set(possible_soln) if(len(soln_set) != 1): return "ERROR!" else: return list(soln_set)[0] def read_input(): with sys.stdin as file: nTests = int(file.readline()) for tests in range (1, nTests+1): print("Case #" + str(tests)+": ", end="") disp_digits = file.readline().split('\n')[0].split(' ') if(debug): print(disp_digits[1:]) list(map(lambda x: display_calci(x), disp_digits[1:])) print("-----------") answer_string = solver(disp_digits) if(debug): display_calci(answer_string) print(answer_string) import sys debug = int(sys.argv[1]) sys.stdin = open (sys.argv[2]) #sys.stdin = open ('input2') #sys.stdin = open ('A-small-practice.in') #sys.stdin = open ('A-large-practice.in') read_input()
No comments:
Post a Comment