题有点长,每次看到比较长的英语题就不想读了,以后要改改这个毛病了。
题意:有一段路总长是S,一个人想从X1走到X2,如果步行走1米需要t2分钟,现在有一辆车,走一米需要t1分钟,位置为P,方向为d (d为1表示正向,-1表示反向走)如果车和人相遇,人可以坐上车,问人从x1到x2做少需要的时间。
思路:模拟这个过程即可。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int s,x1,x2,t1,t2,p,d,i,j;
while(scanf("%d%d%d",&s,&x1,&x2)!=EOF)
{
scanf("%d%d",&t1,&t2);
scanf("%d%d",&p,&d);
int dir=1;
if(x2<x1)
dir=-1;
if(dir==1)
{
int igort=(x2-x1)*t2;
if(d==1)
{
int tram;
if(p<=x1)
{
tram=(x2-p)*t1;
}
else if(p>x1)
{
tram=((s-p)+s+x2)*t1;
}
if(igort<=tram)
{
printf("%d\n",igort);
}
else
{
printf("%d\n",tram);
}
}
else if(d==-1)
{
int tram=(p+x2)*t1;
if(igort<=tram)
{
printf("%d\n",igort);
}
else
{
printf("%d\n",tram);
}
}
}
if(dir==-1)
{
int igort=(x1-x2)*t2;
int tram;
if(d==1)
{
tram=(s-p+s-x2)*t1;
if(igort<=tram)
{
printf("%d\n",igort);
}
else
{
printf("%d\n",tram);
}
}
else
{
if(p<x1)
{
tram=(p+s+(s-x2))*t1;
}
else
{
tram=(p-x2)*t1;
}
if(igort<=tram)
{
printf("%d\n",igort);
}
else
{
printf("%d\n",tram);
}
}
}
}
return 0;
}