Start: Jun, 28, 2019 13:00:00
2019年度暑期短学期第四天-助教场
End: Jun, 30, 2019 23:59:00
Time elapsed:
Time remaining:

Problem_ID: A
Result: Accepted
Time: 134ms
Memory: 1756kB
Author: 2018212212059
In contest: 1289

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <set>
#include <string>
#include <map>
#include <queue>
#include <stack>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <deque>
#define clr(a,b) memset(a,b,sizeof(a))
#define ll long long

using namespace std;

const int maxn=1e4+10;
int a,b,c,d,e;

int main()
{
	while(scanf("%d %d %d %d %d",&a,&b,&c,&d,&e)!=EOF)
	{
		int vall=a*b*c,ans;
		int a1=0;
		//e<min(a,b,c)/2-->当b最小时2*d>=b为挖穿-->d>=e(d==e刚挖穿可能有一块剩下,所以应为d>e) 
		if(e>d)
		{
			ans=vall-2*d*(a-2*e)*(c-2*e)-2*d*(b-2*e)*(c-2*e)-2*d*(a-2*e)*(b-2*e);//剩下的 
		}
		else 
		{
			a1=(a-2*d)*(b-2*d)*(c-2*d);
			ans=4*e*(a-2*e)*e+4*e*(b-2*e)*e+4*c*e*e;//剩下的
		}
		ans=max(ans,a1); 
		cout<<ans<<endl;
	}
}