Cod sursa(job #1607578)

Utilizator gabime11Gabriel gabime11 Data 21 februarie 2016 13:46:55
Problema Arbori indexati binar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include<iostream>
#include<fstream>
using namespace std;
void zero(int &a, int b)
{
    a=a+b;
}
void unu(int v[100001], int a, int b, int &s)
{
    int i;
    s=0;
    for(i=a;i<=b;i++)
    {
        s=s+v[i];
    }
}
void doi(int v[100001],int a, int N, int &k)
{
    k=-1;
    int i,s=0;
    for(i=1;i<=N;i++)
    {
        s+=v[i];
        if(s==a)
        {
            k=i;
            break;
        }
    }
}
int main()
{
    int i,j,d,l,N,M,v[100001],k,s;
    ifstream fin("aib.in");
    ofstream fout("aib.out");
    fin>>N>>M;
    for(i=1;i<=N;i++)
    {
        fin>>v[i];
    }
    for(l=1;l<=M;l++)
    {
        fin>>d;
        if(d==0)
        {
            fin>>i>>j;
            zero(v[i],j);
        }
        else
        {
            if(d==1)
            {
                fin>>i>>j;
                unu(v,i,j,s);
                fout<<s<<'\n';
            }
            else
            {
                if(d==2)
                {
                    fin>>i;
                    doi(v,i,N,k);
                    fout<<k<<'\n';
                }
            }
        }
    }
    fin.close();
    fout.close();
    return 0;
}