154AC - ABC055C: Scc Puzzle

ABC055-C (300 points)
問題

 N 個の 's' と  M 個の 'c' を組み合わせて 'scc' という文字列をいくつ作れるか求める. ただし 'c' を  2 個組み合わせて  1 個の 's' を作れるものとする.

  •  1 \leq  N, M \leq 10^{12}
  • 入力は全て整数
方針
  •  2 * N <= M:'s' は全て使用可能 + 残った 'c' で 'scc' を作る.
  •  2 * N > M :使用できない 's' があるので, 'c' を全てそのまま使う.
import math

# input
N, M = map(int, input().split())

if 2 * N <= M:
    ans = N + math.floor((M - 2 * N) / 4)
else:
    ans = math.floor(M / 2)

print(ans)