Cod sursa(job #3328683)

Utilizator coldsh1tANdrei coldsh1t Data 9 decembrie 2025 17:39:04
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iostream>
#include <cmath>

using namespace std;

ifstream fin("datorii.in");
ofstream fout("datorii.out");

int v[15005], batog[15005];

int main()
{
    int n, m;
    fin>>n>>m;
    int nr=sqrt(n);
    for(int i=0;i<n;i++)
    {
        fin>>v[i];
        batog[i/nr]+=v[i];
    }
    for(int i=1;i<=m;i++)
    {
        int tip, x, y;
        fin>>tip>>x>>y;
        x--;
        if(tip==0)
        {
            batog[x/nr]-=y;
            v[x]-=y;
        }
        else
        {
            y--;
            int 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++;
            }
            fout<<s<<"\n";
        }
    }
    return 0;
}