E - 本棚の整理 / Organizing the Bookshelf Editorial by kyopro_friends

(余談)愚直で通す

vector ではなく deque を使うと愚直を通すことができます。

実装例 (C++)

# pragma GCC target("avx2")
# pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int N, Q;
    cin >> N >> Q;
    deque<int>D(N);
    for(int i=0; i<N; i++) cin >> D[i];

    for(int i=0; i<Q; i++){
        int T;
        cin >> T;
        T--;
        if(T < D.size()){
            D[T]--;
            if(D[T] == 0){
                D.erase(D.begin() + T);
            }
        }
        cout << D.size() << "\n";
    }
}

posted:
last update: