#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long Int; typedef pair P; #define rep(i,x) for(Int i = 0; i < (Int)(x); i++) #define rrep(i,x) for(Int i = ((Int)(x) - 1); i >= 0; i--) #define _upgrade ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define all(x) (x).begin(), (x).end() #define UNIQUE(v) v.erase( unique(v.begin(), v.end()), v.end() ); #define pb push_back #define MX 100010 template void chmin(T1 &a, T2 b){if(a>b)a=b;} template void chmax(T1 &a, T2 b){if(a> n >> m >> a; vector> ma(n+1); for(int i = 0; i < m; i++) { int l,r,p; cin >> l >> r >> p; ma[r][l] += p; } vector dp(n+2, -1e17); dp[0] = 0; Int tmp_maxi = 0; for(int i = 1; i < n+1; i++) { int cost = a; if(i == n) cost = 0; for(auto pa : ma[i]) { chmax(dp[i], dp[pa.first-1] + pa.second- cost); } chmax(dp[i], tmp_maxi-a); chmax(tmp_maxi, dp[i]); } cout << *max_element(all(dp)) << endl; return 0; }