B.物流
思路:设从a地运往c地x堆
列出式子整理:(c1-c3-c2+c4)*x+c3*c+c2*a+c4*b-c4*c
可以发现只有x是变量,对x进行讨论,令k=c1-c3-c2+c4,当k>0,x越小越好;
当k<0,x越大越好。
要注意x取值的时候边界判断,当x往小的方向取的时候,x不能小于a-d;
当x往大的方向取的时候,x不能超过c。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,c,d,c1,c2,c3,c4;
ll res=2e9+10;
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>a>>b>>c>>d>>c1>>c2>>c3>>c4;
ll k=c1-c3-c2+c4;
ll x;
if(k<0)
x=min(a,c);
else
x=max(0ll,a-d);
res=k*x+c3*c+c2*a+c4*b-c4*c;
cout<<res<<endl;
}
return 0;
}