def commas(data):
place = 0
commas = []
while place < len(data):
if data[place] == ",":
commas.append(place)
place += 1
return commas
def getLocation(data):
set = commas(data)
location = int(data[:set[0]])
return location
def convertTime(value):
place = value
letters = ["A", "B", "C", "D", "E", "F", "G", "H"]
numbers = range(10, 18)
location = 0
while location < len(letters):
if letters[location] == value:
place = numbers[location]
location += 1
place = int(place)
total = 30 * place
total += 510
hours = total / 60
minutes = total % 60
time = [hours, minutes]
return time
def findStart(data):
set = commas(data)
start = data[set[0] + 1:set[1]]
return convertTime(start.strip())
def findEnd(data):
set = commas(data)
end = data[set[1] + 1:]
return convertTime(end.strip())
def hours(start, end):
startMin = 60 * start[0] + start[1]
endMin = 60 * end[0] + end[1]
difference = endMin - startMin
hours = difference / 60.0
return hours
def price(location, hours):
price = 0
if location in range(1, 10):
price = 10 * hours
elif location in range(10, 20):
if hours <= 4:
price = 8 * hours
else:
price = 12 * hours - 16
elif location in range(20, 30):
if hours <= 4:
price = 12 * hours
else:
price = 24 * hours - 48
return price
def main():
datas = []
locations = []
hour = []
prices = []
intPrices = []
worker = 0
while worker < 4:
datas.append(raw_input())
locations.append(getLocation(datas[worker]))
hour.append(hours(findStart(datas[worker]), findEnd(datas[worker])))
prices.append(price(locations[worker], hour[worker]))
intPrices.append(prices[worker])
prices[worker] = "$" + str(prices[worker]) + "0"
worker += 1
worker = 0
while worker < 4:
print prices[worker]
worker += 1
worker = 0
sumOfPrices = sum(intPrices)
sumOfPrices = "$" + str(sumOfPrices) + "0"
print sumOfPrices
main()
ZGVmIGNvbW1hcyhkYXRhKToKICAgIHBsYWNlID0gMAogICAgY29tbWFzID0gW10KICAgIHdoaWxlIHBsYWNlIDwgbGVuKGRhdGEpOgogICAgICAgIGlmIGRhdGFbcGxhY2VdID09ICIsIjoKICAgICAgICAgICAgY29tbWFzLmFwcGVuZChwbGFjZSkKICAgICAgICBwbGFjZSArPSAxCiAgICByZXR1cm4gY29tbWFzCgpkZWYgZ2V0TG9jYXRpb24oZGF0YSk6CiAgICBzZXQgPSBjb21tYXMoZGF0YSkKICAgIGxvY2F0aW9uID0gaW50KGRhdGFbOnNldFswXV0pCiAgICByZXR1cm4gbG9jYXRpb24KCmRlZiBjb252ZXJ0VGltZSh2YWx1ZSk6CiAgICBwbGFjZSA9IHZhbHVlCiAgICBsZXR0ZXJzID0gWyJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiXQogICAgbnVtYmVycyA9IHJhbmdlKDEwLCAxOCkKICAgIGxvY2F0aW9uID0gMAogICAgd2hpbGUgbG9jYXRpb24gPCBsZW4obGV0dGVycyk6CiAgICAgICAgaWYgbGV0dGVyc1tsb2NhdGlvbl0gPT0gdmFsdWU6CiAgICAgICAgICAgIHBsYWNlID0gbnVtYmVyc1tsb2NhdGlvbl0KICAgICAgICBsb2NhdGlvbiArPSAxCiAgICBwbGFjZSA9IGludChwbGFjZSkKICAgIHRvdGFsID0gMzAgKiBwbGFjZQogICAgdG90YWwgKz0gNTEwCiAgICBob3VycyA9IHRvdGFsIC8gNjAKICAgIG1pbnV0ZXMgPSB0b3RhbCAlIDYwCiAgICB0aW1lID0gW2hvdXJzLCBtaW51dGVzXQogICAgcmV0dXJuIHRpbWUKCmRlZiBmaW5kU3RhcnQoZGF0YSk6CiAgICBzZXQgPSBjb21tYXMoZGF0YSkKICAgIHN0YXJ0ID0gZGF0YVtzZXRbMF0gKyAxOnNldFsxXV0KICAgIHJldHVybiBjb252ZXJ0VGltZShzdGFydC5zdHJpcCgpKQoKZGVmIGZpbmRFbmQoZGF0YSk6CiAgICBzZXQgPSBjb21tYXMoZGF0YSkKICAgIGVuZCA9IGRhdGFbc2V0WzFdICsgMTpdCiAgICByZXR1cm4gY29udmVydFRpbWUoZW5kLnN0cmlwKCkpCgpkZWYgaG91cnMoc3RhcnQsIGVuZCk6CiAgICBzdGFydE1pbiA9IDYwICogc3RhcnRbMF0gKyBzdGFydFsxXQogICAgZW5kTWluID0gNjAgKiBlbmRbMF0gKyBlbmRbMV0KICAgIGRpZmZlcmVuY2UgPSBlbmRNaW4gLSBzdGFydE1pbgogICAgaG91cnMgPSBkaWZmZXJlbmNlIC8gNjAuMAogICAgcmV0dXJuIGhvdXJzCgpkZWYgcHJpY2UobG9jYXRpb24sIGhvdXJzKToKICAgIHByaWNlID0gMAogICAgaWYgbG9jYXRpb24gaW4gcmFuZ2UoMSwgMTApOgogICAgICAgIHByaWNlID0gMTAgKiBob3VycwogICAgZWxpZiBsb2NhdGlvbiBpbiByYW5nZSgxMCwgMjApOgogICAgICAgIGlmIGhvdXJzIDw9IDQ6CiAgICAgICAgICAgIHByaWNlID0gOCAqIGhvdXJzCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJpY2UgPSAxMiAqIGhvdXJzIC0gMTYKICAgIGVsaWYgbG9jYXRpb24gaW4gcmFuZ2UoMjAsIDMwKToKICAgICAgICBpZiBob3VycyA8PSA0OgogICAgICAgICAgICBwcmljZSA9IDEyICogaG91cnMKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmljZSA9IDI0ICogaG91cnMgLSA0OAogICAgcmV0dXJuIHByaWNlCgpkZWYgbWFpbigpOgogICAgZGF0YXMgPSBbXQogICAgbG9jYXRpb25zID0gW10KICAgIGhvdXIgPSBbXQogICAgcHJpY2VzID0gW10KICAgIGludFByaWNlcyA9IFtdCiAgICB3b3JrZXIgPSAwCiAgICB3aGlsZSB3b3JrZXIgPCA0OgogICAgICAgIGRhdGFzLmFwcGVuZChyYXdfaW5wdXQoKSkKICAgICAgICBsb2NhdGlvbnMuYXBwZW5kKGdldExvY2F0aW9uKGRhdGFzW3dvcmtlcl0pKQogICAgICAgIGhvdXIuYXBwZW5kKGhvdXJzKGZpbmRTdGFydChkYXRhc1t3b3JrZXJdKSwgZmluZEVuZChkYXRhc1t3b3JrZXJdKSkpCiAgICAgICAgcHJpY2VzLmFwcGVuZChwcmljZShsb2NhdGlvbnNbd29ya2VyXSwgaG91clt3b3JrZXJdKSkKICAgICAgICBpbnRQcmljZXMuYXBwZW5kKHByaWNlc1t3b3JrZXJdKQogICAgICAgIHByaWNlc1t3b3JrZXJdID0gIiQiICsgc3RyKHByaWNlc1t3b3JrZXJdKSArICIwIgogICAgICAgIHdvcmtlciArPSAxCiAgICB3b3JrZXIgPSAwCiAgICB3aGlsZSB3b3JrZXIgPCA0OgogICAgICAgIHByaW50IHByaWNlc1t3b3JrZXJdCiAgICAgICAgd29ya2VyICs9IDEKICAgIHdvcmtlciA9IDAKICAgIHN1bU9mUHJpY2VzID0gc3VtKGludFByaWNlcykKICAgIHN1bU9mUHJpY2VzID0gIiQiICsgc3RyKHN1bU9mUHJpY2VzKSArICIwIgogICAgcHJpbnQgc3VtT2ZQcmljZXMKCm1haW4oKQ==
MywgOSwgSAoxNywgMSwgRQoyMCwgNSwgRwoxNSwgMiwgOA==
3, 9, H
17, 1, E
20, 5, G
15, 2, 8