【多校2018#1】HDU6298 Maximum Multiple

题面在这里

好像只有\((n/3,n/3,n/3)\)\((n/2,n/4,n/4)\)两种可能了

因为其他方案不能保证\(x+y+z=n\)

考场上打表看出来的……

示例程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;

int tst,n;
int main(){
scanf("%d",&tst);
while (tst--){
scanf("%d",&n);
if (n%3==0) printf("%lld\n",(ll)(n/3)*(n/3)*(n/3));else{
int x=n/2,y=x/2;
if (x+2*y==n) printf("%lld\n",(ll)x*y*y);else puts("-1");
}
}
return 0;
}