Cod sursa(job #336593)

Utilizator funkydvdIancu David Traian funkydvd Data 31 iulie 2009 20:39:26
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream f1 ("datorii.in");
ofstream f2 ("datorii.out");
int n,m,x,k,sum[20000],y,j;
int raspuns(int ii)
{
    int suma=0;
    for (int i=ii;i>0;i-=(i & -i)) suma+=sum[i];
    return suma;
}
int main()
{
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);
    f1>>n>>m;
    for (int i=1;i<=n;i++) { f1>>x;  for (int j=i; j<=n; j+=(j & -j)) sum[j]+=x;}
    for (int i=1;i<=m;i++){
        f1>>k>>x>>y;
        if (k) f2<<raspuns(y)-raspuns(x-1)<<"\n";
        else   for (int j=x; j<=n; j+=(j & -j)) sum[j]-=y;;
    }
    return 0;
}