题型:简单题
题意:
在城市中有trolleys and buses这两种车,有4中票价才,c1,c2,c3,c4,分别代表:
c1:一张票只能在一辆trolley 或 bus上做一次;
c2:一张票能在一辆trolley 或 bus上做多次;
c3:一张票能在所有的trolley 或 bus上做多次;
c4:一张票能在所有的trolley 和 bus上做多次,就是想怎么坐就怎么坐~
分析:
对于每一辆车,都有c1和c2两种选择,那么就在c1*a[i](或c1*b[i]) 和 c2中取较小的;然后在乘所有的bus时,有上面计算的值和c3两种选择,再取较小的;在算最后总的花费时,有上面计算的值和c4两种选择,选出较小的即为答案。
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main(){
int a[1234],b[1234];
int c1,c2,c3,c4,n,m;
int ans,bus,tro;
while(~scanf("%d%d%d%d",&c1,&c2,&c3,&c4)){
bus=0;
tro=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=0;i<m;i++) scanf("%d",&b[i]);
for(int i=0;i<n;i++)
bus+=min(c1*a[i],c2);
bus=min(bus,c3);
for(int i=0;i<m;i++)
tro+=min(c1*b[i],c2);
tro=min(tro,c3);
ans=min(bus+tro,c4);
printf("%d\n",ans);
}
return 0;
}