a.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import os, argparse
  2. def solve_task(filename):
  3. binary_extraction_array = []
  4. with open(filename) as infile:
  5. for raw_line in infile:
  6. line = raw_line.rstrip()
  7. if len(binary_extraction_array) != len(line):
  8. #prepare binary_extraction_array
  9. for i in range(len(line)):
  10. binary_extraction_array.append({'0':0, '1':0})
  11. for i in range(len(binary_extraction_array)):
  12. if line[i] == '0':
  13. binary_extraction_array[i]['0'] += 1
  14. else:
  15. binary_extraction_array[i]['1'] += 1
  16. gamma_rate_array = []
  17. epsilon_rate_array = []
  18. for g in binary_extraction_array:
  19. if g['0'] > g['1']:
  20. gamma_rate_array.append('1')
  21. epsilon_rate_array.append('0')
  22. else:
  23. gamma_rate_array.append('0')
  24. epsilon_rate_array.append('1')
  25. gamma_rate_str = ''.join(gamma_rate_array)
  26. epsilon_rate_str = ''.join(epsilon_rate_array)
  27. gamma_rate = int(gamma_rate_str, 2)
  28. epsilon_rate = int(epsilon_rate_str, 2)
  29. print("Gamma: " + str(gamma_rate))
  30. print("Epsilon: " + str(epsilon_rate))
  31. print("Power consumption: " + str(gamma_rate*epsilon_rate))
  32. os.system("pause")
  33. def parse_arguments():
  34. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  35. parser.add_argument('filename', nargs='?', default="infile.txt", help='Input file')
  36. args = parser.parse_args()
  37. return args
  38. def main():
  39. args = parse_arguments()
  40. solve_task(args.filename)
  41. if __name__ == "__main__":
  42. main()