概述
题意:在一条直线上,坐标从0到S。 人要从X1位置向X2位置移动,前进一个单位要t2时间。 当人在X1位置,车子在p位置,前进一个单位要t1秒。方向为d,d==1表示从正方向前进, d == -1表示负方向前进。 人可以在与车子相遇时,坐上车子。
题解:亏了,跳过C题去肝D题。貌似这个C更省时间。。。 只要判断一下在满足车子和人至少一次同方向时,谁先到X2位置就好了。
代码如下:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int s,t1,t2,x1,x2,p,d;
while(scanf("%d%d%d",&s,&x1,&x2)!=EOF)
{
scanf("%d%d",&t1,&t2);
scanf("%d%d",&p,&d);
int dix=abs(x2-x1);
int time1=dix*t2;
int time2;
if(d==1)
{
if(p<=x1&&x1<x2)
time2=(x2-p)*t1;
else if(x1<x2)
time2=(s-p+s+x2)*t1;
else if(x2<x1)
time2=(s-p+s-x2)*t1;
}
else if(d==-1)
{
if(p>=x1&&x2<x1)
time2=(p-x2)*t1;
else if(x2<x1)
time2=(p+s+s-x2)*t1;
else if(x1<x2)
time2=(p+x2)*t1;
}
if(time2>time1)
printf("%dn",time1);
else
printf("%dn",time2);
}
return 0;
}
最后
以上就是称心铃铛为你收集整理的Codeforces 746C Tram(水题)的全部内容,希望文章能够帮你解决Codeforces 746C Tram(水题)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复