Cod sursa(job #124890)

Utilizator MaGdUtZaVasile Maria-Magdalena MaGdUtZa Data 20 ianuarie 2008 09:55:02
Problema Gardieni Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 0.73 kb
#include<stdio.h>
#define dim 3001

typedef struct
{
	long long unsigned x,y,c,s;
}bula;

bula a[dim],aux;

long long unsigned n,i,j,t,sum;

int main()
{
	freopen("gardieni.in","r",stdin);
	freopen("gardieni.out","w",stdout);

	scanf("%llu%llu",&n,&t);

	for(i=1; i<=n; ++i)

		scanf("%llu%llu%llu",&a[i].x,&a[i].y,&a[i].c);

	for(i=1; i<n; ++i)

		for(j=i+1; j<=n; ++j)

			if(a[i].x>a[j].x || (a[i].x==a[j].x && a[i].y>a[j].y))
			{
				aux=a[i];

				a[i]=a[j];

				a[j]=aux;
			}
	int k=1;

	for(i=1; i<=n; ++i)

		for(j=a[i].x; j<=a[i].y; ++j)

			if(a[i].c < a[i].s || (a[k].s==0 && j>=k))

				a[k++].s=a[i].c;

	for(i=1; i<=t; ++i)

		sum+=a[i].s;

	printf("%llu",sum);

	return 0;
}