Cod sursa(job #3328682)

Utilizator lucalluca lucaa lucal Data 9 decembrie 2025 17:38:58
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n,m;
int a[15000],btg[130];
int c,t,v,p,q;
int nr;
int main(){
    cin>>n>>m;
    nr=sqrt(n);
    for(int i=1;i<=n;i++){
        cin>>a[i];
        btg[(i-1)/nr]+=a[i];
    }
    for(int i=1;i<=m;i++){
        cin>>c;
        if(c==0){
            cin>>t>>v;
            a[t]-=v;
            if(a[t]<0)a[t]=0;
            btg[(t-1)/nr]-=v;
            if(btg[(t-1)/nr]<0)btg[(t-1)/nr]=0;
        }
        if(c==1){
            cin>>p>>q;
            int pi=(p-1)/nr;
            int pf=(q-1)/nr;
            int s=0;
            for(int j=p;j<=(pi+1)*nr;j++)
                s+=a[j];
            for(int j=pi+1;j<pf;j++)
                    s+=btg[j];
            for(int j=pf*nr+1;j<=q;j++)
                    s+=a[j];
            cout<<s<<endl;
        }
    }
}