93分,第6个点WA了
#include<bits/stdc++.h>
using namespace std;
const int Inf=2147483647;
int n,ml,md,ax[10005],bx[10005],dx[10005],ay[10005],by[10005],dy[10005],d[10005];
bool flag;
void update(int &x,int y)
{
if(x>y)
{
x=y;
flag=true;
}
}
void Ford()
{
for(int k=0;k<=n;k++)
{
flag=false;
for(int i=0;i+1<n;i++)
if(d[i+1]<Inf)
update(d[i],d[i+1]);
for(int i=0;i<ml;i++)
if(d[ax[i]-1]<Inf)
update(d[bx[i]-1],d[ax[i]-1]+dx[i]);
for(int i=0;i<md;i++)
if(d[by[i]-1]<Inf)
update(d[ay[i]-1],d[by[i]-1]-dy[i]);
}
}
void solve()
{
fill(d,d+n,0);
Ford();
if(flag)
{
cout<<"-1";
return;
}
fill(d,d+n,Inf);
d[0]=0;
Ford();
int r=d[n-1];
if(r==Inf) r-=2;
cout<<r;
}
int main()
{
cin>>n>>ml>>md;
for(int i=0;i<=ml-1;i++) cin>>ax[i]>>bx[i]>>dx[i];
for(int i=0;i<=md-1;i++) cin>>ay[i]>>by[i]>>dy[i];
solve();
return 0;
}