|
|
@@ -0,0 +1,57 @@
|
|
|
+import os, argparse
|
|
|
+
|
|
|
+
|
|
|
+def solve_task(filename):
|
|
|
+ numbers = []
|
|
|
+ with open(filename) as infile:
|
|
|
+ for raw_line in infile:
|
|
|
+ line = raw_line.rstrip()
|
|
|
+ numbers.append(int(line))
|
|
|
+
|
|
|
+ numbers.sort()
|
|
|
+
|
|
|
+ target = 2020
|
|
|
+ biggerIndex = len(numbers)-1
|
|
|
+ smallerIndex = 0
|
|
|
+ solved = False
|
|
|
+
|
|
|
+ while not solved:
|
|
|
+ smaller = numbers[smallerIndex]
|
|
|
+ bigger = numbers[biggerIndex]
|
|
|
+ #print("Smaller: " + str(smaller) + ", Bigger: " + str(bigger))
|
|
|
+ if((smaller+bigger) == target):
|
|
|
+ soved = True
|
|
|
+ print("Answer: " + str(smaller*bigger))
|
|
|
+ break
|
|
|
+ if(bigger < target/2):
|
|
|
+ print("No solusion found")
|
|
|
+ break
|
|
|
+
|
|
|
+ if(bigger + numbers[smallerIndex+1] > target):
|
|
|
+ #print("Decreasing bigger")
|
|
|
+ biggerIndex -= 1
|
|
|
+ #smallerIndex = 0
|
|
|
+ if(biggerIndex < 0):
|
|
|
+ print("No solusion found")
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ #print("Increasing smaller")
|
|
|
+ smallerIndex += 1
|
|
|
+ if (smallerIndex >= len(numbers)):
|
|
|
+ print("No solusion found")
|
|
|
+ break
|
|
|
+
|
|
|
+ #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="example.txt", help='Input file')
|
|
|
+ args = parser.parse_args()
|
|
|
+ return args
|
|
|
+
|
|
|
+def main():
|
|
|
+ args = parse_arguments()
|
|
|
+ solve_task(args.filename)
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ main()
|