按照题目的意思,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;
}