Cod sursa(job #1041059)

Utilizator Catalina_BrinzaBrinza Catalina Catalina_Brinza Data 25 noiembrie 2013 14:39:11
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
//
//  main.cpp
//  datorii
//
//  Created by Catalina Brinza on 11/19/13.
//  Copyright (c) 2013 Catalina Brinza. All rights reserved.
//


#include <fstream>
#include <math.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");

int main(int argc, const char * argv[])
{int a[15001], s[1501];
    int n,m,i,j,sumf,x,p=0,q,k;
    f>>n>>m;
    k=sqrt(n);
    for (i=1;i<=n;++i)
    {
        f>>a[i];
        s[i/k]+=a[i];
    }
    if (k*k==n) p=k;
    else if (n%k==0) p=n/k;
    else p=n/k+1;

    
    for (i=0;i<m;i++)
    {
        f>>x>>p>>q;
        if (x==0)
        {
            a[p]-=q;
            s[p/k]-=q;
        }
        else
        {
            sumf=0;
            for(j=p/k;j<=q/k;j++) sumf+=s[j];
   
            for (j=(p/k)*k;j<p;j++) sumf-=a[j];
    
            for (j=q+1;j<(q/k+1)*k;j++) sumf-=a[j];
  
            g<<sumf<<"\n";}
    }
    return 0;
}