Pagini recente » Cod sursa (job #2170835) | Cod sursa (job #1870080) | Cod sursa (job #1936642) | Cod sursa (job #2290670) | Cod sursa (job #205059)
Cod sursa(job #205059)
/*marbles - infoarena*/
#include<fstream.h>
long n,m,ver[70],max,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<max;i++)
ver[i]=0;
max=0;
i=0;
while(v[i].cord<pozi)i++;
while(v[i].cord<=pozj)
{
ver[v[i].poz]++;
i++;
}
max=i;
maxim=0;
for(i=1;i<=max;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;
}