Cod sursa(job #641749)

Utilizator coco19doubleco coco19 Data 29 noiembrie 2011 12:43:13
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <fstream>
using namespace std;

int n,m, a[50],mat[30][3],l=0,suma[50];
ifstream fin("datorii.in");
ofstream fout("datorii.out");

void citire()
{
    int i,j,k;
    fin>>n>>m;
    for (i=1;i<=n;i++)
        fin>>a[i];
    for (j=1;j<=m;j++)
        for (k=1;k<=3;k++)
            fin>>mat[j][k];

}

int achitare(int t,float v)
{
    a[t]=a[t]-v;
    return a[t];
}

void interogare(int p,int q)
{
    int s=0,i;
    for (i=p;i<=q;i++)
        s=s+a[i];
    l++;
    suma[l]=s;
}

void test()
{
    int i,j;
    for (i=1;i<=m;i++)
        {
            if (mat[i][1]==0) a[mat[i][2]]=achitare(mat[i][2],mat[i][3]);
            if (mat[i][1]==1) interogare(mat[i][2],mat[i][3]);
        }
}

void restrictii()
{
    if ((n>=1) && (n<=15000) && (m>0) && (m<=100000))
        test();
}

void afisare()
{
    int i,ok=1,j;
    for (i=1;i<=n;i++)
    if (a[i]<0) ok=0;
    if (ok==1)
    {
        for (j=1;j<=l;j++)
        fout<<suma[j]<<"\n";
    }
}
int main()
{
   citire();
   restrictii();
   afisare();
   return 0;
}