POJ1860

来源:互联网 发布:淘宝店一件代销赚钱吗 编辑:程序博客网 时间:2024/06/05 18:01
#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;}

0 0