Triangulation
题号:NC221645
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

A regular n-sided polygon P ܲ can be partitioned into n − 2 triangles by adding non-crossing line segments connecting two vertices of P . For example, a square can be partitioned into two triangles, a regular pentagon can be partitioned into three triangles, and a regular hexagon can be partitioned into four triangles. The resulting set of triangles is called a *triangulation* of P. There exist two or more triangulations of P if n is greater than three.

Once a triangulation T of P is chosen, the distance between two triangles a and b in T is defined to be the number of hops crossing the borders of two adjacent triangles when you travel from a to b. Note that you must stay inside the polygon P at any time during this travel, that is, it is not allowed to hop crossing the border of P.

For example, the distance of a and b in the triangulation shown in Figure J.1 is three since the triangles, ܽa, b, cܿ, and d, should be visited to travel from a to d, and you have to hop three times crossing borders between triangles.

The diameter of a triangulation ܶT is the maximum of the distances between all pairs of triangles in ܶT. Write a program to find a triangulation of a regular n-sided polygon P hose diameter is the minimum over all possible triangulations and print its diameter.

输入描述:

Your program is to read from standard input. The input starts with a line containing , where n is the number of sides of the regular n-sided polygon.

输出描述:

Your program is to write to standard output. Print exactly one line. The line should contain the minimum diameter of the triangulations of a regular n-sided polygon.

The following shows sample input and output for three test cases.
示例1

输入

复制
3

输出

复制
0
示例2

输入

复制
4

输出

复制
1
示例3

输入

复制
6

输出

复制
2