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

hamayanhamayan's blog

バスの運賃 [yukicoder No.633]

https://yukicoder.me/problems/no/633

解法

https://yukicoder.me/submissions/230861

シミュレーションをする。 
客はiからjに行く場合はa[i]+a[i+1] + ... + a[j]のコストがかかるとあるが、コストa[i]の道を何人通るかを計算して総和を取っていけばいい。
ans := 答え
cnt := 現在の乗車人数

int N, A[101], B[101], C[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N - 1) cin >> A[i];
    rep(i, 0, N) cin >> B[i] >> C[i];

    int ans = 0;
    int cnt = C[0];
    rep(i, 0, N - 1) {
        ans += cnt * A[i];
        cnt += -B[i + 1] + C[i + 1];
    }
    cout << ans << endl;
}