AtCoder

ABC288 A問題(Many A+B Problems)を解く

AtCoder_ABC288_A

AtCoder が提供しているABC(AtCoder Beginner Contest)288 のA問題をC++とPythonで解いてみました。ABC288は、2023年2月4日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Many A+B Problems(Difficulty : 6)

問題はリンク先をご覧ください。

ABC288 A問題 Many A+B Problems

足し算の結果を繰り返し表示します。AtCoder Problems による Difficulty は 6 でした。

解答案

問題を解く方針を書きだします。

  • N を読み込む。
  • N 回以下を行う。
    • Ai と Bi を読み込む。
    • Ai と Bi の和を出力する。

C++ プログラム例(ABC288A)

C++(およびC言語)の整数型の変数には、使える範囲があります。今回の問題の場合、

$$-10^9 \leqq A_i,\;B_i \leqq 10^9$$

という制約があるため、和の範囲は以下となります。

$$-2 \times 10^9 \leqq A_i + B_i \leqq 2 \times 10^9$$

一方、32ビット符号付き整数の範囲は、以下となります。

$$-2147483648 \; ~ \; 2147483647$$

今回の問題は32ビット符号付き整数(int)を使ってよいことが分かります。なお、C++(C言語)の整数型の大きさについては、過去に記事にしました。詳しく知りたい方は、「C言語:整数の大きさのまとめ」をご覧ください。

以下が、C++プログラムとなります。

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; ++i) {
		int a, b;
		cin >> a >> b;
		cout << a + b << endl;
	}

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC288A)

Python は、整数の大きさに制限がありません。このため、C++ にあった整数型の大きさ(大きな整数や小さな整数)を意識する必要がありません。

"""AtCoder Beginner Contest 288 A"""
n = int(input())
for _ in range(n):
    a, b = map(int, input().split())
    print(a + b)

こちらも「AC」と判定されました。

最後に

問題で問われていることは簡単でしたが、整数として扱える範囲を考えるきっかけになりました。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA