pontz_rwのブログ

プログラミング等の備忘録

ITP1_7_B: How many ways?

組み合わせの数 | プログラミング入門 | Aizu Online Judge]
組み合わせの数を求める問題

選ぶ3つの数をa, b, c (a < b < c) とすると、以下の条件を満たします。

  1. aは合計値xを3で割った数より小さい (a < x / 3)
  2. bは、合計値xからaを引いた数を2で割った数より小さい (b < (x - a) / 2)
  3. cは、選択できる数字の範囲内である (c <= n)

解答

while True:
    n, x = map(int, input().split())
    if n == x == 0:
        break

    cnt = 0

    for a in range(1, x // 3):
        for b in range(a + 1, x // 2):
            c = x - a - b
            if b < c <= n:
                cnt += 1

    print(cnt)