各変数の型を決める場合、その変数が扱えるべき値を正しく扱える型にする必要があります。
この問題では、合計値がとりうる範囲は $-10^10$ から $10^10$ です。したがって、合計値を扱う変数の型は long long 型などの大きな整数を扱える型である必要があります。
また、最小値、最大値を計算するための変数の初期値にも注意しましょう。
#include <iostream>
int main() {
int n;
std::cin >> n;
const int MAX_A = 1000000;
const int MIN_A = -1000000;
int max = MIN_A, min = MAX_A;
long long sum = 0;
for (int i = 0; i < n; i++) {
int a;
std::cin >> a;
if (max < a) {
max = a;
}
if (a < min) {
min = a;
}
sum += a;
}
std::cout << min << " " << max << " " << sum << std::endl;
}
|
オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。 |