各変数の型を決める場合、その変数が扱えるべき値を正しく扱える型にする必要があります。
この問題では、合計値がとりうる範囲は $-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 の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。 |