C. Flip,Flip, and Flip...... | AtCoder Regular Contest 091

問題
N行M列, カード
初期状態: すべて表
すべてのカードについて、そのカードと周囲8枚のカードを裏返す
最終状態の裏のカードを数えよ
1<=N,M<=10^9

解説
カードが十分多いとき
ほぼすべてのカードが自分と周りの計9枚によって裏返される
よって裏
あとは残りのカードをちゃんと調べるだけ
実はN>=2かつM>=2のときは外周のマスはすべて表、
それ以外のマスはすべて裏になる。
なのでそうでない場合だけ、分けて計算する。

int main() {
    ll N, M;
    cin >> N >> M;

    ll ans = 0;
    if (N == 1 && M == 1)ans = 1;
    else if (N == 1)ans = M - 2;
    else if (M == 1)ans = N - 2;
    else ans = (N - 2)*(M - 2);

    cout << ans << endl;
}