Pagini recente » Cod sursa (job #1351241) | Cod sursa (job #1075957) | Cod sursa (job #157708) | Cod sursa (job #3283051) | Cod sursa (job #2970980)
#include <bits/stdc++.h>
#pragma GCC optimize ("O3")
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define bminify(a,b)a=bmin(a,b)
#define bmaxify(a,b)a=bmax(a,b)
#define forq(i,ii,n)for(i=ii;i<n;i++)
using namespace std;
typedef long long ll;
ifstream in("stalpi.in");
ofstream out("stalpi.out");
ll n,i,j,x[100002],c[100002],h[100002],l;
struct t{int x,s,d,c;}a[100002];
int main()
{
ios_base::sync_with_stdio(false);
in.tie(nullptr),out.tie(nullptr);
in>>n;
for(i=1;i<=n;i++)
in>>a[i].x>>a[i].c>>a[i].s>>a[i].d,x[i-1]=a[i].x,c[i]=INT_MAX;
sort(x,x+n);
x[n]=INT_MAX;
//for(i=0;i<n;i++)cout<<x[i]<<' ';cout<<'\n';
for(i=1;i<=n;i++)
a[i].s=lower_bound(x,x+n,a[i].x-a[i].s)-x+1,a[i].d=upper_bound(x,x+n,a[i].x+a[i].d)-x;
sort(a+1,a+n+1,[](t a,t b){return a.s<b.s;});
for(i=1;i<=n;i++)
{
h[l++]=((c[a[i].s-1]+a[i].c)<<20ll)+a[i].d;
push_heap(h,h+l,greater<ll>());
while(h[0]%(1<<20ll)<i)
pop_heap(h,h+l,greater<ll>()),l--/*,cout<<h[l]%(1<<20ll)<<' '*/;
//for(j=0;j<l;j++)cout<<(h[j]>>20)<<' '<<h[j]%(1<<20)<<" ";
c[i]=h[0]>>20ll;
//cout<<c[i]<<'\n';
}
out<<c[n];
}