Cod sursa(job #1860529)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 28 ianuarie 2017 10:18:54
Problema Arbori indexati binar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>

using namespace std;

ifstream fin ("aib.in");
ofstream fout ("aib.out");

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

bool ok;
unsigned int i, j;

unsigned int sum;

int main ()
{
    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;
            sum = 0;
            ok = 0;
            for (j=1; j<=N; j++)
            {
                sum += A[j];
                if (sum == a)
                {
                    ok = 1;
                    break;
                }
            }
            if (ok == 1)
                fout << j << '\n';
            else
                fout << -1 << '\n';
        }
    }
    return 0;
}