Cod sursa(job #3328688)

Utilizator lauraaaaBanaru Laura lauraaaa Data 9 decembrie 2025 17:46:04
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <cmath>

using namespace std;
ifstream cin ("datorii.in");
ofstream cout ("datorii.out");
int v[1001],batog[11];
int main()
{
    int m,n,i,tip,a,b,s;
    cin >> n >> m;
    int nr=sqrt(n);
    for (i=0; i<n; i++)
    {
        cin >> v[i];
        batog[i/nr]+=v[i];
    }
    for (i=1; i<=n; i++)
    {
        cin >> tip >> a >> b;
        a--;
        if (tip==1)
        {
            s=0;
            b--;
            while (a%nr!=0 && a<=b)
            {
                s+=v[a];
                a++;
            }
            while (a+nr<=b)
            {
                s+=batog[a/nr];
                a+=nr;
            }
            while (a<=b)
            {
                s+=v[a];
                a++;
            }
            cout << s << endl;
        }
        else
        {
            if (b<v[a]){
                v[a]-=b;
                batog[a/nr]-=b;
            }
            else{
                batog[a/nr]-=v[a];
                v[a]=0;
            }
        }
    }
    return 0;
}