package main import . "fmt" func main() { var n,h,w int Scan(&n,&h,&w) ans := (n/2)*(n-n/2)*((w-1)+(h-1)) Println(ans) } /* 考察 N=5,H=1,W>=N+2で考える 5人バラバラに割り当てたとき 1 < x1 < x2 < x3 < x4 < x5 < W このとき x1を1に1だけ近づけると |x1-x2|,|x1-x3|,|x1-x4|,|x1-x5|がそれぞれ1だけ増えて総和は4増える x1をWに1だけ近づけると |x1-x2|,|x1-x3|,|x1-x4|,|x1-x5|がそれぞれ1だけ減って総和は4減る x2,x3,x4,x5にも同様の考え方をすると x1,x2は1に近づけるほうが総和が増える x4,x5はWに近づけるほうが総和が増える x3はどこにあっても変わらない つまり、x1=x2=1、x4=x5=Wが最適、x3は1でもWでもそれ以外でもOKだが処理手間を考えると1かWに置いたほうが計算が楽 すなわち、1かWに半分ずつ割り当てればOK マンハッタン距離なのでx方向とy方向は独立で考えればいいのでy方向でも同様に1かHに半分ずつ割り当てればOK x=1にfloor(N/2)を割り当て x=WにN-floor(N/2)を割り当てたとして x=1側とx=W側のペアの組み合わせ総数はfloor(N/2)*(N-floor(N/2))、距離はW-1、なので距離の総和はその積 */