Cod sursa(job #2329504)

Utilizator psa2001Pascaru Stefan-Alin psa2001 Data 26 ianuarie 2019 20:49:20
Problema Arbori indexati binar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.68 kb
#include<iostream>
#include<fstream>

using namespace std;

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

int list[100000];
int n,m,temp,nr;

void op0()
{
	in>>temp>>nr;
	list[temp]=list[temp]+nr;
}

void op1()
{
	list[0]=0;
	in>>temp>>nr;
	for(int i=temp ; i<=nr;i++)
	list[0]+=list[i];
	out<<list[0]<<endl;
}

void op2()
{
	list[0]=0;
	in>>temp;
	nr=1;
	do
	{
		list[0]=list[0]+list[nr];
		nr++;
	}
	while(list[0]!=temp && nr<9);
	if(list[0]==temp)
	{
		out<<(nr-1)<<"\n";
	}
	else
	out<<"-1\n";
}

void citire()
{
	in>>n>>m;
	for(int i=1; i<=n ; i++)
	{
		in>>list[i];
	}
	for(int i=0;i<m;i++)
	{
		in>>temp;
		if(temp==0)
		{
			op0();
		}
		else if(temp==1)
		{
			op1();
		}
		else
			op2();
	}
}

int main()
{
	
	citire();
	cout<<list[5];
	return 0;
}

















/*
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream in("bfs.in");
ofstream out("bfs.out");

int n,m,ns;
const int nl=100000;
vector <int> muchii[nl];
int dis[nl];
queue <int> coada;

void BFS()
{
	int nod,vecin;
	while(!coada.empty())
	{
		nod=coada.front();
		coada.pop();
		for(unsigned int i= 0; i<muchii[nod].size(); i++)
		{
			vecin = muchii[nod][i];
			if(dis[vecin] == -1)
			{
				coada.push(vecin);
				dis[vecin]=dis[nod]+1;
			}
		}
	}
}

void citire()
{
	in>>n>>m>>ns;
	for(int i=1;i<=m;i++)
	{
		int x,y;
		in>>x>>y;
		muchii[x].push_back(y);
	}
	for(int i=1;i<=n;i++)
		dis[i]=-1;
	dis[ns]=0;
	
	coada.push(ns);
	
	BFS();
	
	for(int i=1; i<=n; i++)
	out<<dis[i]<<" ";
}

int main()
{
	
	citire();
	return 0;
}


*/