確かに 200 点かもしれないけど、AGC-A は時々こういう注意力系が出るね。
問題概要
個の整数であって、最小が 、最大が であるようなものについて、その総和として考えられる値が何通りあるかを求めよ。
制約
考えたこと
この手の問題で重要なこととして、とりうる値は 以上 以下の整数という具合に、区間になっていることがあげられる。つまり、 が作れて も作れるなら も作れるのだ。
こういう風に、取りうる値が区間になることを見越した考察は、より高難易度な問題であっても、すごくたくさん出てくる。で今回は とは言っていないことに注意。
- のとき解なしなので 0
- のとき、最小が で最大が なので答えは、 になる...のだが、 の場合に注意!!!!!!!
- のときは例外処理を行う。 なら 1 で、それ以外だと 0
#include <iostream> using namespace std; int main() { long long N, A, B; cin >> N >> A >> B; if (A > B) cout << 0 << endl; else if (N == 1) cout << (A == B ? 1 : 0) << endl; else cout << (N-2) * (B-A) + 1 << endl; }