Submission #916786

# Submission time Handle Problem Language Result Execution time Memory
916786 2024-01-26T14:14:43 Z Dec0Dedd Sterilizing Spray (JOI15_sterilizing) C++14
20 / 100
5000 ms 9416 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<ll, ll> pii;

struct fenwick {
    vector<ll> bit;
    int n;
 
    void init(int sz) {
        n=sz+10;
        bit.assign(n, 0);
    }
 
    ll sum(int r) {
        ll res=0;
        for (;r>=0; r=(r&(r+1))-1) res+=bit[r];
        return res;
    }
 
    ll que(int l, int r) {
        return sum(r)-sum(l-1);
    }
 
    void upd(int x, ll d) {
        for (; x<n; x=x|(x+1)) bit[x]+=d;
    }

    void st(int x, ll d) {
        ll vl=que(x, x);
        upd(x, d-vl);
    }
};

const int N = 1e5+10;

int n, q, k, c[N];

void solve() {
    cin>>n>>q>>k;
    for (int i=1; i<=n; ++i) cin>>c[i];

    fenwick f; f.init(n+10);

    set<int> st;
    for (int i=1; i<=n; ++i) {
        f.st(i, c[i]);
        if (c[i] > 0) st.insert(i);
    }

    while (q--) {
        int s, t, u; cin>>s>>t>>u;
        if (s == 1) {
            c[t]=u;
            if (u > 0) st.insert(t);
            f.st(t, u);
        } else if (s == 2) {
            auto ptr=st.lower_bound(t);
            if (k == 1) continue;

            while (ptr != st.end()) {
                if ((*ptr) > u) break;
                int nvl=c[*ptr]/k;

                f.st(*ptr, nvl);
                if (nvl == 0) {
                    st.erase(ptr++);
                    continue;
                } ++ptr;
            }
        } else cout<<f.que(t, u)<<"\n";
    }
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);
    
    int t=1; //cin>>t;
    while (t--) solve();
}
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 47 ms 5460 KB Output is correct
2 Correct 40 ms 4436 KB Output is correct
3 Correct 42 ms 6736 KB Output is correct
4 Correct 58 ms 8980 KB Output is correct
5 Correct 61 ms 9156 KB Output is correct
6 Correct 67 ms 9044 KB Output is correct
7 Correct 64 ms 9092 KB Output is correct
8 Correct 67 ms 9416 KB Output is correct
9 Correct 58 ms 9044 KB Output is correct
10 Correct 61 ms 8992 KB Output is correct
11 Correct 58 ms 8948 KB Output is correct
12 Correct 57 ms 9044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 1116 KB Output is correct
2 Correct 11 ms 2136 KB Output is correct
3 Correct 13 ms 2396 KB Output is correct
4 Correct 33 ms 2356 KB Output is correct
5 Correct 41 ms 5424 KB Output is correct
6 Correct 40 ms 5460 KB Output is correct
7 Correct 45 ms 5716 KB Output is correct
8 Correct 50 ms 5372 KB Output is correct
9 Correct 48 ms 5248 KB Output is correct
10 Correct 43 ms 5256 KB Output is correct
11 Correct 38 ms 5200 KB Output is correct
12 Correct 38 ms 5144 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 5091 ms 5228 KB Time limit exceeded
2 Halted 0 ms 0 KB -