Cod sursa(job #3279436)

Utilizator Radu_Stefan2010Radu Loga Radu_Stefan2010 Data 22 februarie 2025 22:33:42
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,i,x,q,qq,t,st,dr,stt,drr,k,poz,b[100002],a[100001];
int main()
{
    in>>n>>qq;
    q=int(sqrt(n));
    for(int i=1; i<=n; i++)
    {
        in>>a[i];
        k=i/q+1;
        if(i%q==0)
            k--;
        b[k]+=a[i];
    }
    for(int i=1; i<=qq; i++)
    {
        in>>t;
        if(t==0)
        {
            in>>poz>>x;
            a[poz]-=x;
            k=i/q+1;
            if(i%q==0)
                k--;
            b[k]-=x;
        }
        else
        {
            in>>st>>dr;
            k=st/q+1;
            stt=k;
            k=dr/q+1;
            drr=k-1;
            //cout<<stt<<" "<<drr<<'\n';
            int sum=0;
            for(int j=stt;j<=drr;j++)
                sum+=b[j];
            for(int j=st;j<=(stt-1)*q;j++)
                sum+=a[j];
            for(int j=(drr+1)*q-1;j<=dr;j++)
                sum+=a[i];
            out<<sum<<'\n';
        }
    }
    return 0;
}