Cod sursa(job #1043041)
Utilizator | 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;
}