Cod sursa(job #342895)

Utilizator bog29Antohi Bogdan bog29 Data 24 august 2009 12:03:25
Problema Stalpi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#define dmax 100002
using namespace std;
ifstream in("stalpi.in");
ofstream out("stalpi.out");
int n;
long dn[dmax];
struct stalpi
{	long x;
	int c;
	long l;
	long r;
}	s[dmax];
typedef int (*compfn)(const void *,const void *);
long sf(struct stalpi *a,struct stalpi *b)
{	return (a->x - b->x);
}
int main()
{	int i,j;
	in>>n;
	for(i=0;i<n;i++)
		in>>s[i].x>>s[i].c>>s[i].l>>s[i].r;
	in.close();
	qsort((void*)&s,n,sizeof(struct stalpi),(compfn)sf);
	for(i=0;i<n;i++)
	{	if(i==0)
			dn[i]=s[i].c;
		else
		{	dn[i]=dn[i-1]+s[i].c;
			for(j=0;j<i;j++)
			{	if(s[j].x+s[j].r>=s[i].x)
					dn[i]=min(dn[i],dn[j-1]+s[j].c);
				if(s[i].x-s[i].l<=s[j].x)
					dn[i]=min(dn[i],dn[j-1]+s[i].c);
			}	
		}	
	}		
	out<<dn[n-1];
	out.close();
	return 0;
}