切割立方体
思路:根据每条面最少的切割面,
#切割立方体
num = map(int , raw_input().split())
x=num[0]
y=num[1]
z=num[2]
k=num[3]
kuaishu=1
# for i in range(k):
if x>1 and y>1 and z >1:
kuaishu=x*y*z
if k %3 ==0 and k/3 < min(x,y,z):
kuaishu=(k/3+1)**3
if k % 3==1 and k/3 < min(x,y,z) :
# print k //3
kuaishu=(k//3+1)**2*(k//3+2)
if k %3 == 2 and k/3 < min(x,y,z):
kuaishu = (k // 3 + 1) * (k // 3 + 2) ** 2
m=min(x-1,y-1,z-1)
list1=[x-1,y-1,z-1]
list1.sort()
n=list1[1]
if (k-3*m)%2==1 and 3*m<k and k<=3*n:
kuaishu=(m+1)*(m+1+(k-3*m)//2)*(m+2+(k-3*m)//2)
if (k-3*m)%2==0 and 3*m<k and k<=3*n:
kuaishu = (m+1) * (m +2+ (k - 3 * m) // 2) * (m +2+ (k - 3 * m) // 2)
print kuaishu