Cod sursa(job #3328674)

Utilizator StefanS007Stefan Sigartau StefanS007 Data 9 decembrie 2025 17:33:43
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15001],bat[131];
int n,m,a,b,c,s,cp;
int main()
{
    fin>>n>>m;
    cp=sqrt(n);
    for(int i=0; i<n; i++ )
    {
        fin>>v[i];
        bat[i/cp]+=v[i];
    }
    for(int j=1; j<=m; j++)
    {
        fin>>c>>a>>b;
        a--;
        if(c==0)
        {
            bat[a/cp]-=b;
            v[a]-=b;
        }
        else
        {
            b--;
            while(a%cp!=0 && a<=b)
            {
                s+=v[a];
                a++;
            }
            while(a+cp<b)
            {
                s+=bat[a/cp];
                a+=cp;
            }
            while(a<=b)
            {
                s+=v[a];
                a++;
            }
            fout<<s<<'\n';
            s=0;
        }
    }
    return 0;
}