ABC028 C - 数を3つ選ぶマン
備忘録
問題
回答
import sys import os ii = lambda: int(sys.stdin.buffer.readline().rstrip()) il = lambda: list(map(int, sys.stdin.buffer.readline().split())) iln = lambda n: [int(sys.stdin.buffer.readline().rstrip()) for _ in range(n)] iss = lambda: sys.stdin.buffer.readline().decode().rstrip() isn = lambda n: [sys.stdin.buffer.readline().decode().rstrip() for _ in range(n)] def main(): if os.getenv("LOCAL"): sys.stdin = open("input.txt", "r") A, B, C, D, E = il() print(max(A+D+E, B+C+E)) if __name__ == '__main__': main()
考え方
条件がA < B < C < D < E
なので、
3つの和で最も値が大きくなるのは必ずC + D + E
2番目に大きくなるのは必ず、B + D + E
となる。
3番目からは気を付ける必要があり、
3番目に大きい3つの和はA + D + E
またはB + C + E
のどちらかになる。
そのため、この2つを比較し、大きい方を出力する。