Cod sursa(job #126583)

Utilizator hazegirlCatalina Predoi hazegirl Data 22 ianuarie 2008 15:09:09
Problema Gardieni Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
//gardieni
#include<fstream.h>
long int n,cost,t,a[50006],b[50006],c[50005],d;

long int sort(long int p, long int q)
{long int st=p, dr=q, x=a[st], y=b[st], z=c[st];
while(st<dr)
{while(st<dr && z<=c[dr]) dr--;
a[st]=a[dr]; b[st]=b[dr]; c[st]=c[dr];
while(st<dr && z>=c[st]) st++;
a[dr]=a[st]; b[dr]=b[st]; c[dr]=c[st]; 
}
a[st]=x; b[st]=y; c[st]=z;
return st;
}

void qsort(long int p, long int q)
{long int m=sort(p,q);
if(m-1>p) qsort(p,m-1);
if(m+1<q) qsort(m+1,q);
}

int main()
{int i,j;
ifstream f("gardieni.in");
ofstream g("gardieni.out");
f>>n>>t;
for(i=1;i<=n;i++)
	f>>a[i]>>b[i]>>c[i];
qsort(1,n);
for(i=1;i<=t;i++)
	{for(j=1;j<=n && d==0;j++)
		if(a[j]<=t && b[j]>=t) {cost+=c[j];
					d=1;}
	d=0;}
g<<cost<<"\n";
f.close();
g.close();
return 0;
}