Codeforces Round #133 (Div. 2) A : Tiling with Hexagons

問題概要

六角形のタイルを敷き詰めて六角形を作る。このとき各辺は向かいの辺と長さが等しい。その長さa,b,cが与えられるのでタイルの個数を求める問題。

解法

図をじっと眺める。b*cの部分を取り除くと厚さ(a-1)の層が残る。

acceptされたコード

def f(a, b, c):
  return b*c + (a-1)*(b+c-1)

a, b, c = map(int, raw_input().split())
print f(a,b,c)