MENU

NOI.AC#60 ball

NOI.AC#60 ball

可以发现每次推动球时,是将每个球的位置 $-1$ ,然后把最左边的球放到 $P-1$ 处。
记个 $-1$ 次数,再用set维护就好了。
#include<iostream>
#include<set>
using namespace std;
int n, q, P, offset;
set<int>p;
int main() {
    cin >> n >> q >> P;
    while(n--) {
        int p;
        cin >> p;
        ::p.insert(p);
    }
    while(q--) {
        int ty;
        cin >> ty;
        if(ty == 1) {
            int x;
            cin >> x, p.insert(x + offset);
        } else p.erase(p.begin()), ++offset, p.insert(P + offset - 1);
    }
    for(int x : p)cout << x - offset << ' ';
}
Leave a Comment

captcha
请输入验证码