Cod sursa(job #3328684)

Utilizator Iatagan_TEO12Iatagan Teodora Iatagan_TEO12 Data 9 decembrie 2025 17:40:54
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int v[15001],batog[130];
int main()
{

    int n,m,i,nr,tip,x,y,s;
    cin>>n>>m;
    nr=sqrt(n);
    for(i=0;i<n;i++){
        cin>>v[i];
        batog[i/nr]+=v[i];
    }
    for(i=1;i<=m;i++){
        cin>>tip>>x>>y;
        x--;
        if(tip==0){ ///adunare
            batog[x/nr]-=y;
            v[x]-=y;
        }
        else{   ///interogare
            y--;
            s=0;
            while(x%nr!=0 && x<=y){
                s+=v[x];
                x++;
            }
            while(x+nr<y){
                s+=batog[x/nr];
                x+=nr;
            }
            while(x<=y){
                s+=v[x];
                x++;
            }
            cout<<s<<'\n';
        }
    }


    return 0;
}