Cod sursa(job #205062)

Utilizator IrnukIrina Grosu Irnuk Data 28 august 2008 21:28:05
Problema Marbles Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
/*marbles - infoarena*/


#include<fstream.h>

long n,m,ver[70],maxim,pozi,pozj;
 
struct o
{
	long cord,poz;
}v[100005],pivot;

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

void citire()
{
	long i;
	fin>>n>>m;
	for(i=0;i<n;i++)
	   	fin>>v[i].cord>>v[i].poz;
}

void fa(long pozi,long pozj)
{
	long i;
	for(i=0;i<70;i++)
		ver[i]=0;

	i=0;
	while(v[i].cord<pozi)i++;
	while(v[i].cord<=pozj)
	{
		ver[v[i].poz]++;
		i++;
	}

	maxim=0;
	for(i=1;i<=69;i++)
		if(maxim<ver[i])
			maxim=ver[i];
	fout<<maxim<<'\n';
	
}
/*void pivotare(long i,long j,long &m)
{

	pivot=v[i];

	while(i<j)
	{
		while(j>i && v[j].cord>=pivot.cord) j--;
		v[i]=v[j];
		while(i<j && v[i].cord<=pivot.cord) i++; 
		v[j]=v[i];
	}
	v[i]=pivot;
	m=i;
}

void quick_sort(long p,long q)
{
	long m;

	if(p<q)
	{
		pivotare(p,q,m); 

		quick_sort(p,m-1);
	
		quick_sort(m+1,q);
	}

}
*/
int main()
{
	long indice,j;
	long i,pozi,pozj;

	citire();
//	quick_sort(0,n-1);
	for(i=0;i<m;i++)
	{
		fin>>indice>>pozi>>pozj;
		if(indice==0)
		{
			j=0;
			while(v[j].cord!=pozi) j++;
			v[j].cord=pozi+pozj;
		}
		else
			fa(pozi,pozj);

	}

	fout.close();
	return 0;
}