Pagini recente » Cod sursa (job #2453924) | Cod sursa (job #1755401) | Cod sursa (job #758296) | Cod sursa (job #1702148) | Cod sursa (job #1798087)
#include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f;
ifstream f("stalpi.in");
ofstream g("stalpi.out");
struct pt
{
int a,b,c;
}a[1<<17];
bool cmp(pt x,pt y)
{
return x.a>y.a;
}
int i,n,aib[1<<17],v[1<<17];
void update(int x,int y)
{
for(;x<=n+1;x+=x&-x)
aib[x]=min(aib[x],y);
}
int query(int x)
{
int rez=inf;
for(;x;x-=x&-x)
rez=min(rez,aib[x]);
return rez;
}
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>v[i]>>a[i].c>>a[i].a>>a[i].b,a[i].a=v[i]-a[i].a,a[i].b+=v[i];
sort(v+1,v+n+1);
v[n+1]=(1LL<<31)-1;
sort(a+1,a+n+1,cmp);
memset(aib,inf,sizeof aib);
update(n+1,0);
for(i=1;i<=n;++i)
update(lower_bound(v+1,v+n+1,a[i].a)-v,query((upper_bound(v+1,v+n+2,a[i].b)-v))+a[i].c);
g<<query(1);
}