はまやんはまやんはまやん

hamayanhamayan's blog

Stone Monument [AtCoder Beginner Contest 099 B]

https://beta.atcoder.jp/contests/abc099/tasks/abc099_b

解説

https://beta.atcoder.jp/contests/abc099/submissions/2667746

左側の塔が1+...+nの高さであるとする。
すると、右側の塔の長さは1+...+(n-1)となる。
ここでxだけ雪が積もっているとすると、左側の塔の埋もれていない部分の高さはa = 1+...+(n-1)-x
右側の塔の埋もれていない部分の高さはb = 1+...+n-xとなる。
ここでb-aをする。
b-a={1+...+n-x} - {1+...+(n-1)-x} = {1+...+n} - {1+...+(n-1)} = n
となり、nの値が分かる。
これで、1+...+n=n*(n+1)/2が計算できる。
b=1+...+n-xを変形するとx=1+...+n-bであるため、答えが求まる。

int A, B;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> A >> B;
 
    int d = B - A;
    int ans = d * (d + 1) / 2 - B;
    cout << ans << endl;
}