Cod sursa(job #124969)

Utilizator maria_pparcalabescu maria daniela maria_p Data 20 ianuarie 2008 10:40:46
Problema Gardieni Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 0.64 kb
#include<cstdio>
struct point{
	long x;
	point *leg;
}*coada[50010],*p;
long a[50010],b[50010],c[50010],i,t,n,j,min,x,s;
int main(){
	freopen("gardieni.in","r",stdin);
	freopen("gardieni.out","w",stdout);
	scanf("%ld%ld",&n,&t);
	for(i=0;i<n;i++)
		scanf("%ld%ld%ld",&a[i],&b[i],&c[i]);
	for(i=0;i<t;i++)coada[i]=new point;
	for(i=0;i<n;i++)
		for(j=a[i]-1;j<b[i];j++){
			p=new point;
			coada[j]->leg=p;
			p->x=c[i];
			p->leg=0;
		}
	s=0;
	for(i=0;i<t;i++){
		p=coada[i]->leg;
		min=p->x;
		for(p=p->leg;p>0;p=p->leg)
			if(p->x<min)min=c[i];
		s+=min;
	}
	printf("%ld\n",s);
	fclose(stdin);
	fclose(stdout);
	return 0;
}