按照题目的意思,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号
京公网安备 11010502036488号