题目:你有一辆车,有一串车的运动序列,问车最少的油箱是多大,才能完成这个指令序列。
Fuel consumption n:n/100 km 耗油
Leak:漏洞增加一个,每个洞 1/1 km 耗油
Gas station:加满油
Mechanic:修好所有的漏洞
Goal:到达目标
分析:模拟。最开始考虑从后向前计算,回来想想,不用那么麻烦。
直接设置初始量是0,每次装满就是0,求出路径上的最小值取绝对值即可。
#include <cstdlib>
#include <cstdio>
char temp[100];
int main()
{
int v,front,now;
while ( scanf("%d%s",&front,temp) ) {
scanf("%s%d",temp,&v);
if ( !v ) break;
int leak = 0;
double tank = 0.0,Min = 0.0;
do {
scanf("%d%s",&now,temp);
tank = tank - v*(now-front)/100.0 - leak*(now-front);
if ( tank < Min ) Min = tank;
front = now;
if ( temp[0] == 'L' ) leak ++;
if ( temp[0] == 'M' ) leak = 0;
if ( temp[0] == 'F' ) scanf("%s%d",temp,&v);
if ( temp[1] == 'a' ) {
scanf("%s",temp);
tank = 0;
}
}while ( temp[1] != 'o' || temp[2] != 'a' );
printf("%.3lf\n",-1*Min);
}
return 0;
}