Pagini recente » Cod sursa (job #2120733) | Cod sursa (job #1782987) | Cod sursa (job #1609799) | Cod sursa (job #1054261) | Cod sursa (job #342895)
Cod sursa(job #342895)
#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;
}