バイトの競プロメモ

主に競技プログラミング

E - Tozan and Gezan

E - Tozan and Gezan

まずaiがbi以下なら限界まで取ったほうがよさそう
残ったaj > bj なる任意のあるjについてj以外が0になるまで選べる
なぜならとざん君がjを取らない限りa[j] > b[j] が保たれるため

よって答えは全体の合計からa[i] > b[i]なる最小のb[i]を引いたもの
感想
bi - ai が大きい順に取ろうとしかけた

void solve() {
    cin >> n;
    na2(a, b, n);
    if (a == b)cout << 0 << endl;
    else {
        rep(i, n)if (a[i] > b[i])chmin(mi, b[i]);
        cout << sum(a) - mi << endl;
    }
}