제출 #1324944

#제출 시각아이디문제언어결과실행 시간메모리
1324944kiruthees가로등 (APIO19_street_lamps)C++20
0 / 100
38 ms14260 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

struct Fenwick {
    int n;
    vector<ll> bit;
    Fenwick(int n): n(n), bit(n+1) {}
    void add(int i, ll v) {
        for (++i; i <= n; i += i&-i) bit[i] += v;
    }
    ll sum(int i) {
        ll s = 0;
        for (++i; i > 0; i -= i&-i) s += bit[i];
        return s;
    }
    ll query(int l, int r) {
        return sum(r) - (l ? sum(l-1) : 0);
    }
};

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

    int n, q;
    cin >> n >> q;

    string s;
    cin >> s;

    vector<pair<string, pair<int,int>>> events(q);

    for(int i=0;i<q;i++){
        string type;
        cin >> type;
        if(type == "toggle"){
            int x;
            cin >> x;
            events[i] = {type,{x-1,0}};
        } else {
            int a,b;
            cin >> a >> b;
            events[i] = {type,{a-1,b-1}};
        }
    }

    vector<ll> ans(q);

    vector<int> last_on(n, -1);

    for(int i=0;i<n;i++){
        if(s[i]=='1') last_on[i]=0;
    }

    for(int t=0;t<q;t++){
        auto [type,p] = events[t];
        if(type=="toggle"){
            int i = p.first;
            if(s[i]=='1'){
                s[i]='0';
            } else {
                s[i]='1';
                last_on[i]=t+1;
            }
        }
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...