给你两个数和两个限制,和操作次数
每次操作可以让其中一个数减一,输出能让 a ∗ b a*b a∗b最小的最优方法的到的乘值,也就是最后的 a ∗ b a*b a∗b
这题也是个贪心
小学知识告诉我们,两数相乘越接近越大,那么差越大,乘值越小,此时优先让 a , b a,b a,b中较小的减
注意数据范围
开
l
o
n
g
l
o
n
g
long long
longlong
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long a,b,x,y,n;
cin>>a>>b>>x>>y>>n;
long long ans=1e18;
int i=2;
while(i--){
int da=min(n,a-x);
int db=min(n-da,b-y);
ans=min(ans,(a-da)*1ll*(b-db));//开long long
swap(a,b);
swap(x,y);
}
cout<<ans<<endl;
}
}