Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector < pair < long long, long long > > v[200100];
- vector < pair < long long, long long > >::iterator it;
- long long l[200100],r[200100],c[200100];
- int main()
- {
- long long n, x,Answer = 2e18,Min;
- cin>>n>>x;
- for(int i=0; i<n; i++)
- {
- cin>>l[i]>>r[i]>>c[i];
- v[(r[i]-l[i]+1)].push_back(make_pair(l[i],c[i]));
- }
- for(int i=1; i<=2e5; i++)
- {
- Min = 1e18;
- if(v[i].size()>=2)
- {
- sort(v[i].begin(),v[i].end());
- for(int j=v[i].size()-1; j>=0; j--)
- {
- v[i][j].second = min(v[i][j].second,Min);
- Min=min(Min,v[i][j].second);
- }
- }
- }
- for(int i=0; i<n; i++)
- {
- if(x-(r[i]-l[i]+1) <= 0) continue;
- it = upper_bound(v[x-(r[i]-l[i]+1)].begin(),v[x-(r[i]-l[i]+1)].end(),pair < long long, long long >(r[i],-1));
- if(it==v[x-(r[i]-l[i]+1)].end()) continue;
- else Answer = min(Answer, c[i] + it->second);
- }
- Answer == 2e18 ? cout<<"-1" : cout<<Answer;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement