如1716.
#include <cmath>
#include <cstdio>
#include <memory.h>
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <string>
#include <queue>
using namespace std;
int n;
class node
{
public:
int u,v,cost;
};
node e[190900];
int index,min_n,max_n;
int dist[70010];
void adde(int a,int b,int c)
{
e[index].u =a;
e[index].v =b;
e[index].cost =c;
index++;
}
void in()
{
int a,b,c;
index=0;max_n=-1;min_n=1e10;
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
b++;
max_n=max_n>b?max_n:b;
min_n=min_n<a?min_n:a;
adde(b,a,-c);
}
//for(int i=min_n;i<=max_n;i++)
// adde(i,0,0);///源点可以不要
for(int i=min_n;i<max_n;i++)
adde(i,i+1,1);
for(int i=max_n;i>min_n;i--)
adde(i,i-1,0);
}
void bellman()
{
int i,j;
for(i=0;i<=max_n;i++)
dist[i]= 10000;
for(int i=min_n;i<=max_n;i++)
{
int f=1;
for(j=0;j<index;j++)
{
if(dist[e[j].v ]>dist[e[j].u ]+e[j].cost )
{
dist[e[j].v ]=dist[e[j].u ]+ e[j].cost ;
f=0;
}
}
if(f) break;
}
cout<<dist[max_n]-dist[min_n]<<endl;
}
int main()
{
while(cin>>n)
{
in();
bellman();
}
return 0;
}