| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import os, argparse
- def solve_task(filename):
- binary_extraction_array = []
-
- with open(filename) as infile:
- for raw_line in infile:
- line = raw_line.rstrip()
- if len(binary_extraction_array) != len(line):
- #prepare binary_extraction_array
- for i in range(len(line)):
- binary_extraction_array.append({'0':0, '1':0})
-
- for i in range(len(binary_extraction_array)):
- if line[i] == '0':
- binary_extraction_array[i]['0'] += 1
- else:
- binary_extraction_array[i]['1'] += 1
- gamma_rate_array = []
- epsilon_rate_array = []
-
- for g in binary_extraction_array:
- if g['0'] > g['1']:
- gamma_rate_array.append('1')
- epsilon_rate_array.append('0')
- else:
- gamma_rate_array.append('0')
- epsilon_rate_array.append('1')
-
-
- gamma_rate_str = ''.join(gamma_rate_array)
- epsilon_rate_str = ''.join(epsilon_rate_array)
-
- gamma_rate = int(gamma_rate_str, 2)
- epsilon_rate = int(epsilon_rate_str, 2)
-
- print("Gamma: " + str(gamma_rate))
- print("Epsilon: " + str(epsilon_rate))
- print("Power consumption: " + str(gamma_rate*epsilon_rate))
-
- os.system("pause")
- def parse_arguments():
- parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
- parser.add_argument('filename', nargs='?', default="infile.txt", help='Input file')
- args = parser.parse_args()
- return args
- def main():
- args = parse_arguments()
- solve_task(args.filename)
- if __name__ == "__main__":
- main()
|