1. paizaラーニングトップ
  2. レベルアップ問題集
  3. ナップサックメニュー(言語選択)
  4. 問題一覧 PHP編
  5. 部分和問題 1 PHP編

ナップサックメニューのサムネイル
部分和問題 1 PHP編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

このチャプターでは、部分和問題を扱います。
部分和問題とは、 N 個の整数 A_1 ,..., A_N からいくつかを選んで和を K に等しくできるかを判定する問題です。
いくつかのステップに分けて部分和問題の理解を深めます。

4 個の整数が与えられます。
いくつかの整数を選んだ時の総和を K にすることが可能か判定してください。
可能であればYesを、そうでないならNoを出力してください。

・ヒント:全探索を行う
長さ N の 数列 a_1, a_2, ..., a_N があるときそこからいくつかを選ぶ組み合わせは 2^N 通りあります。
この問題で与えられる整数は4個と少ないため、愚直にすべての組み合わせを試しても実行時間制限に間に合います。

入力される値

K
A_1
A_2
A_3
A_4


  • 1 行目に K が与えられ、続く 4 行に順に整数が与えられます。

  • 入力値最終行の末尾に改行が1つ入ります。
    文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
    期待する出力

    答えを 1 行で出力してください。また末尾に改行をいれ、余計な文字、空行を含んではいけません。

    条件

    すべてのテストケースにおいて、以下の条件をみたします。

    ・入力はすべて整数
    ・1 ≦ K ≦ 40
    ・1 ≦ A_i ≦ 10

    入力例1

    15
    4
    7
    9
    2

    出力例1

    Yes

    入力例2

    26
    6
    6
    10
    9

    出力例2

    No

    問題一覧へ戻る

    ページの先頭へ戻る