题目大意:对于长为l的一条路(0到l),给出n,a,b,l,对于n段给出起点和终点的路,每米消耗b点能量,其余路每米得到a点能量,求开始时最少装多少点能量能走完整段路
解题思路:模拟
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100+10;
int a[maxn],b[maxn];
int main()
{
int t,n,x,y,l;
int res,ans;
scanf("%d",&t);
int cas = 1;
while(t--)
{
scanf("%d%d%d%d",&n,&x,&y,&l);
for(int i = 0; i < n; i++)
scanf("%d%d",&a[i],&b[i]);
a[n] = b[n-1];
res = (a[0]-0)*y;
ans = 0;
for(int i = 0; i < n; i++)
{
if(res < (b[i]-a[i])*x)
{
ans += ((b[i]-a[i])*x-res);
res = 0;
}
else
res -= (b[i]-a[i])*x;
res += (a[i+1]-b[i])*y;
}
printf("Case #%d: %d\n",cas++,ans);
}
return 0;
}