poj1860Currency Exchange
#include <iostream>#include <cstring>
#include <stdio.h>
using namespace std;
int n,m,s,all;
double v;
double dis;
class exchange_point
{
public:
int a,b;
double r,c;
}point;
bool BF()
{
memset(dis,0,sizeof(dis));
dis=v;
bool flag;
for(int i=1;i<=n-1;i++)
{
flag=false;
for(int j=0;j<all;j++)
{
if(dis.b]<(dis.a]-point.c)*point.r)
{
dis.b]=(dis.a]-point.c)*point.r;
flag=true;
}
}
if(flag==false)
break;
}
for(int k=0;k<all;k++)
{
if(dis.b]<(dis.a]-point.c)*point.r)
{
return true;
}
}
return false;
}
int main()
{
double rab,cab,rba,cba;
int a,b;
while(~scanf("%d%d%d%lf",&n,&m,&s,&v))
{
all=0;
for(int i=0;i<m;i++)
{
cin>>a>>b>>rab>>cab>>rba>>cba;
point.a=a;
point.b=b;
point.r=rab;
point.c=cab;
point.a=b;
point.b=a;
point.r=rba;
point.c=cba;
}
if(BF())
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
页:
[1]