Cod sursa(job #3328663)

Utilizator Tudor_Iatagan2Iatagan Tudor Tudor_Iatagan2 Data 9 decembrie 2025 17:20:23
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <cmath>
using namespace std;
int v[15001], batog[130];
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int main()
{
    int n, m, nr, i, cer, x, y, s;
    cin>>n>>m;
    nr=sqrt(n);
    for( i = 0; i < n; i++ ){
        cin>>v[i];
        batog[i/nr]+=v[i];
    }
    for( int q = 1; q <= m; q++ ){
        cin>>cer>>x>>y;
        x--;
        if( cer == 0 ){
            batog[x/nr]-=y;
            v[x]-=y;
        }
        else{   //cer==1
            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;
}