2023 年上海市大学生程序设计竞赛 - 五月赛

A. 选择
PDF 题面可用
你可以在这里下载。

单点时限: 1.0 sec

内存限制: 256 MB

选择正确的道路出发吧。
—— 来自虚空的声音

给定一个初始序列 {1,2,,n},你需要进行若干次操作,将整个序列所有数变成零。每个操作由三步组成:

  1. 选择一个下标集合 S={i1,i2,,ik}{1,2,,n}
  2. 选择一个非负整数 x
  3. 对每个选中的数减去 xiS,aiaix

请计算在最优策略下需要的操作次数。

输入格式

输入一行一个正整数 n (1n106)

输出格式

输出一行一个正整数,表示最少需要的操作次数。

样例

Input
1
Output
1
Input
2
Output
2
Input
3
Output
2

提示

对于第三组样例,一种最优方案的两次操作如下:

  1. S={1,3},x=1:a={0,2,2};
  2. S={2,3},x=2:a={0,0,0}.

可以证明,没有次数更少的方案。