Cod sursa(job #1703575)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 17 mai 2016 10:27:02
Problema Arbori indexati binar Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include <fstream>
#define InFile  "aib.in"
#define OutFile "aib.out"
#define MAX 100001

using namespace std;

unsigned int N, M;
unsigned short int A[MAX];
unsigned short int type, a, b;

unsigned long int sumk[MAX];
unsigned int i, j;

unsigned int sum, k;

int main ()
{
    ifstream fin  (InFile);
    ofstream fout (OutFile);
    fin >> N >> M;
    for (i=1; i<=N; i++)
        fin >> A[i];
    for (i=1; i<=M; i++)
    {
        fin >> type;
        if (type == 0)
        {
            fin >> a >> b;
            A[a] += b;
        }
        else if (type == 1)
        {
            fin >> a >> b;
            sum = 0;
            for (j=a; j<=b; j++)
                sum += A[j];
            fout << sum << '\n';
        }
        else
        {
            fin >> a;
            k = 0;
            for (j=1; j<=N; j++)
                sumk[j] = sumk[j-1] + A[j];
            for (j=1; j<=N; j++)
                if (sumk[j] == a)
                {
                    k = j;
                    break;
                }
            if (k != 0)
                fout << k << '\n';
            else
                fout << -1 << '\n';
        }
    }
    fin.close();
    fout.close();
    return 0;
}