Pagini recente » Cod sursa (job #2641863) | Cod sursa (job #580786) | Cod sursa (job #1802447) | Cod sursa (job #2372681) | Cod sursa (job #137227)
Cod sursa(job #137227)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
int n,i,j;
long long c1[100001],cost,m;
pair<pair<int,int>,pair<int,int>> a[100002];
int x(int i){return a[i].first.first;}
int c(int i){return a[i].first.second;}
int s(int i){return a[i].second.first;}
int d(int i){return a[i].second.second;}
int main()
{
ifstream f("stalpi.in");
ofstream g("stalpi.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i].first.first>>a[i].first.second>>a[i].second.first>>a[i].second.second;
sort(&a[1],&a[n+1]);
memset(c1,127,sizeof(c1));
for(i=1;x(i)<=x(1)+d(1) && i<=n;i++)
c1[i]=c(1);
c1[0]=0;
for(i=2;i<=n;i++)
{
if(x(1)>=x(i)-s(i)) m=0,j=0;
else{
m=min(c1[i-1],c1[i]);
j=i-1;
while(j>=1 && x(j)>=x(i)-s(i)){
if(c1[j-1]<m) m=c1[j-1];
j--;}}
cost=m+c(i);
for(j=j+1;x(j)<=x(i)+d(i) && j<=n;j++)
if(c1[j]>cost)c1[j]=cost;
}
g<<c1[n]<<endl;
g.close();
}