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

题目描述

有一个1\times n的棋盘网格。初始的时候,最左边两个位置上分别放置了一枚棋子。你的目标是最终使得这两个棋子分别放置在最右边的两个位置
你可以进行接下来的两种操作:
  • 选择一枚棋子,朝着相邻位置移动一步
  • 选择一枚棋子,朝着另一枚棋子进行等距离对称跳一步
操作过程中,不允许棋子移动到网格以外的位置,也不允许两枚棋子同时在相同位置
两枚棋子互不区分,问:最少操作多少次,可以使得这两个棋子分别放置在最右边的两个位置上

输入描述:

输入一个整数n \ (2 \leq n \le 10^5),表示1\times n的棋盘

输出描述:

输出一个整数,表示最少操作多少次,可以使得这两个棋子分别放置在最右边的两个位置上
示例1

输入

复制
5

输出

复制
3

说明

最少只需要三步,其中一种移动方式如下图:
示例2

输入

复制
3

输出

复制
1
示例3

输入

复制
2

输出

复制
0