TechFUL: Polygon Cutting

問題概要

 N 角形の紙が 1 枚ある.

Tech ちゃんは以下の操作によって紙をいくつかの多角形に切り分ける.

  • 多角形  P の任意の対角線に沿って紙を切り、2 つの多角形  Q, R に切り分ける.

この操作を繰り返したとき、最大で何個の多角形に切り分けることが出来るか求めよ.

制約

  •  4 \leq N \leq 10^{6}

解法

操作の回数の最大値は 1 つの頂点から引ける対角線の本数と等しく  N - 3 回である.

1 回の操作で多角形は 1 つ増えるので、最終的な多角形の個数は  (N - 3) + 1 = N - 2 個である.

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;
    cout << N - 2 << endl;
}