Advertisement
Guest User

Problem 4. Trainlands

a guest
Sep 2nd, 2017
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.27 KB | None | 0 0
  1. inputLine = input()
  2. trains = dict()
  3. while inputLine != "It's Training Men!":
  4.     if ':' in inputLine:
  5.         inputData = inputLine.split(' : ')
  6.         wagonPower = int(inputData[1])
  7.         inputData = inputData[0].split(' -> ')
  8.         trainName, wagonName = inputData
  9.         if trainName in trains:
  10.             trains[trainName][wagonName] = wagonPower
  11.         else:
  12.             trains[trainName] = {wagonName: wagonPower}
  13.     elif '=' in inputLine:
  14.         inputData = inputLine.split(' = ')
  15.         trainName, otherTrainName = inputData
  16.         trains[trainName] = {}
  17.         for wagon in trains[otherTrainName]:
  18.             trains[trainName][wagon] = trains[otherTrainName][wagon]
  19.     else:
  20.         inputData = inputLine.split(' -> ')
  21.         trainName, otherTrainName = inputData
  22.         if not trainName in trains:
  23.             trains[trainName] = {}
  24.         for wagon in trains[otherTrainName]:
  25.             trains[trainName][wagon] = trains[otherTrainName][wagon]
  26.         del trains[otherTrainName]
  27.     inputLine = input()
  28.  
  29. totalWagonPower = dict()
  30. for train in trains:
  31.     temp = trains[train].values()
  32.     totalWagonPower[train] = (-sum(temp), len(temp))
  33. for train in sorted(totalWagonPower.keys(), key = lambda x: totalWagonPower[x]):
  34.     print('Train: {0}'.format(train))
  35.     for wagon in sorted(trains[train].items(), key = lambda x: (x[1]), reverse = True):
  36.             print('###{0} - {1}'.format(wagon[0], wagon[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement