#include<stdio.h>
#include<iostream>
#define maxn 1000
#define inf 0x3fffffff
using namespace std;
struct Edage
{
int from;
int to;
int cost;
}es[maxn];
int d[maxn];
int v,e;
//无负圈,求单源最短路
/*
单源最短路:从一个点s到其他点的最短距离
*/
void shortest_path(int s)
{
for(int i=0;i<v;i++) d[i]=inf;
d[s]=0;
bool update=false;
while(true)
{
update=false;
for(int i=0;i<e;i++)
{
Edage edage=es[i];
if(d[edage.from]!=inf&&d[edage.from]+cost<d[edage.to])
{
d[edage.to]=d[edage.from]+cost;
update=true;
}
}
if(!update) break;
}
}
//判断是否有负圈
bool find_negative_loop()
{
memset(d,0,sizeof(d));
for(int i=0;i<v;i++)
{
for(int j=0;j<e;j++)
{
Edage edage=es[j];
if(d[edage.from]!=inf&&d[edage.from]+edage.cost<d[edage.to])
{
d[edage.to]=d[edage.from]+edage.cost;
if(i==v-1) return true;
}
}
}
return false;
}