a.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import os, argparse
  2. def solve_task(filename):
  3. numbers = []
  4. with open(filename) as infile:
  5. for raw_line in infile:
  6. line = raw_line.rstrip()
  7. numbers.append(int(line))
  8. numbers.sort()
  9. target = 2020
  10. biggerIndex = len(numbers)-1
  11. smallerIndex = 0
  12. solved = False
  13. while not solved:
  14. smaller = numbers[smallerIndex]
  15. bigger = numbers[biggerIndex]
  16. #print("Smaller: " + str(smaller) + ", Bigger: " + str(bigger))
  17. if((smaller+bigger) == target):
  18. soved = True
  19. print("Answer: " + str(smaller*bigger))
  20. break
  21. if(bigger < target/2):
  22. print("No solusion found")
  23. break
  24. if(bigger + numbers[smallerIndex+1] > target):
  25. #print("Decreasing bigger")
  26. biggerIndex -= 1
  27. #smallerIndex = 0
  28. if(biggerIndex < 0):
  29. print("No solusion found")
  30. break
  31. else:
  32. #print("Increasing smaller")
  33. smallerIndex += 1
  34. if (smallerIndex >= len(numbers)):
  35. print("No solusion found")
  36. break
  37. #os.system("pause")
  38. def parse_arguments():
  39. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  40. parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
  41. args = parser.parse_args()
  42. return args
  43. def main():
  44. args = parse_arguments()
  45. solve_task(args.filename)
  46. if __name__ == "__main__":
  47. main()