按照题目的意思,1的放置位置有两处,为了使结果最大就要使1的数量拆分为两个,使得这两个数的乘积最大。
因:和相同的数相乘,差最大时积最小,差最小时积最大。
如:1+5=2+4=3+3,积最大:3 * 3=9,积最小:1 * 5=51+4+6=3+4+4=1+2+8,积最大:3 * 4 * 4=48,积最小:1 * 4 * 6=24
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,k;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld%lld",&n,&m,&k);
printf("%lld\n",(n-n/2)*(n/2)*m*k);
}
return 0;
} 


京公网安备 11010502036488号