Problem P: 足し算

2つの整数 x, y が与えられる.それらの和 x + y を出力するプログラムを作成せよ.

Input

入力は複数のデータセットからなる.それぞれのデータセットは,1つの空白文字で区切られた2つの整数 x, y からなる1行の文字列で与えられる.x, y は 0 < x ≤ 10000, 0 < y ≤ 10000 を満たす.

最後のデータセットの後ろに,入力の終了を示す “0 0” という行が与えられる.

Output

それぞれのデータセットに対して,2つの整数の和 x + y を1行で出力せよ.余計な空白文字を含んではならない.

Sample Input

1 2
301 99
10000 10000
0 0

Output for Sample Input

3
400
20000

プログラムの作成の仕方

あなたのプログラムは,入力を標準入力から読み取り,その入力に対する答えを標準出力に出力しなければならない.あなたのプログラムの出力があらかじめ用意された解答と一致すれば正解,誤っていたり規定時間内に出力し終わらなかったりすると誤答と判定される.

Javaを使う場合の注意

Javaでプログラムを提出する際には,mainメソッドを持つクラス名を Main にする必要があるので注意すること.

Mac OS X を使用している方への注意

Mac OS X ではバックスラッシュと円記号は別の文字として認識されるので,改行文字を出力する際に “\n” (バックスラッシュ + n)の代わりに “¥n” (円記号 + n)を使わないように注意すること.後者はエスケープシーケンスとして認識されず,円記号がそのまま出力されてしまうので, Wrong Answer と判定される.

プログラムの判定

プログラムが提出され,しばらくすると判定された結果が表示される. プログラムの実行結果は以下のいずれかとなる. Accepted以外は誤答と判断される.

Accepted
正答.プログラムは規定時間以内に正しく終了し,正しい出力を行った.
Presentation Error
出力フォーマットの不正.プログラムは規定時間以内に正しく終了し,正しい出力を行ったが,スペース・改行の位置や数が誤っていた.
Wrong Answer
誤答.プログラムは規定時間以内に正しく終了したが,出力結果が誤っていた.
Time Limit Exceeded
実行時間超過.プログラムは規定時間以内に終了しなかった.
Output Limit Exceeded
出力制限超過.プログラムは,実行中に想定されている以上の大量の出力を行った.
Runtime Error
実行時エラー.プログラムは規定時間以内に終了したが,正常終了しなかった.原因としては,配列のアクセス違反が起こった場合や,例外が処理されなかった場合などがある.プログラムの終了コードが 0 でない場合に Runtime Error となるので,特にC言語を使う場合にmain関数の末尾で return 0;を行っていないとこの判定となってしまうので注意すること.
Compile Error
コンパイルエラー.提出されたプログラムがコンパイルできなかった.コンパイルエラーの内容はリンクをクリックすることにより見ることができる.

解答例

以下に C, C++, Java によるこの問題の解答例を示す.

C

#include <stdio.h>

int main(void)
{
    int x, y;
    for (;;) {
        scanf("%d%d", &x, &y);
        if (x == 0 && y == 0) break;
        printf("%d\n", x + y);
    }
    return 0;
}

C++

#include <iostream>
using namespace std;

int main()
{
    while (true) {
        int x, y;
        cin >> x >> y;
        if (x == 0 && y == 0) break;
        cout << x + y << '\n';
    }
    return 0;
}

Java

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            if (x == 0 && y == 0) break;
            System.out.println(x + y);
        }
    }
}

東京大学プログラミングコンテスト 2008
Problemsetter: Yuta Kitamura