Cod sursa(job #1043041)

Utilizator alexsimi66FMI Simandi Alexandru alexsimi66 Data 27 noiembrie 2013 22:06:51
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#define NMAX 15000

using namespace std;

int main()
{
    ifstream fin("datorii.in");
    ofstream fout("datorii.out");
    int a[NMAX],t,v,sume[NMAX/3+1];
    bool operatie;
    int n,m,i,s,j=1;
    fin>>n>>m;
    for(i=1;i<=n;i++)
        {fin>>a[i];
         if((i+1)%3==0)
            j++;
         sume[j]+=a[i];   //Smenul lui Batog
        }
    for(i=0;i<m;i++)
    {
        fin>>operatie>>t>>v;
        if(operatie)
        {   s=0;
            for(j=t;(j-1)%3!=0&&j<=v;j++)
                s+=a[j];
            j=(j-1)/3+1;
            while(v-j*3>3)
                {s+=sume[j];
                j++;
                }
            j=j*3;
            while(j<=v)
                {s+=a[j];
                j++;
                }

            fout<<s<<"\n";
        }
        else a[t-1]-=v;
    }
    return 0;
}