#include <iostream>
using namespace std;
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <string.h>
#include <stack>
int n,m,s;
double v;
int all;
class excel
{
public:
int a;
int b;
double r;
double c;
}exc[202];
double dis[292]={0};
bool bellmanford()
{
memset(dis,0,sizeof(dis));
dis[s]=v;
bool flag;
for(int i=0;i<n-1;i++)
{
flag=false;
for(int j=0;j<all;j++)
{
if(dis[exc[j].b]<(dis[exc[j].a]-exc[j].c)*exc[j].r)
{
dis[exc[j].b]=(dis[exc[j].a]-exc[j].c)*exc[j].r;
flag=true;
}
}
if(!flag)
break;
}
for(int j=0;j<all;j++)
{
if(dis[exc[j].b]<(dis[exc[j].a]-exc[j].c)*exc[j].r)
return true;
}
return false;
}
int main()
{
double rab,cab,rba,cba;
int a,b;
while(cin>>n>>m>>s>>v)
{
all=0;
for(int i=0;i<m;i++)
{
cin>>a>>b>>rab>>cab>>rba>>cba;
exc[all].a=a;
exc[all].b=b;
exc[all].r=rab;
exc[all++].c=cab;
exc[all].a=b;
exc[all].b=a;
exc[all].r=rba;
exc[all++].c=cba;
}
if(bellmanford())
printf("YES\n");
else
printf("NO\n");
}
//return 0;
}
POJ1860
最新推荐文章于 2020-07-31 18:56:07 发布