188. 小欧的等差数列
内存限制:256 MB
时间限制:1.000 S
题目描述
小欧有一个长度为n,首项为a,公差为d的等差数列。即a, a+d, a+2d, ... ,a+(n-1)d。
现在,小欧把这n个数看作一个集合,每次操作可以从集合中任意选两个数ai, aj,如果 ai+aj是偶数,那么可以将(ai+aj) / 2 加入到集合中。
小欧想知道,经过若干次操作后,集合中最多能有多少个数。
输入
一行三个整数n, a, d,表示等差数列的长度,首项和公差。
1 <= n <= 10^5
1 <= a, d <= 10^9
输出
输出一个整数,表示集合中最多能有多少个数。
样例输入 复制
5 1 2
样例输出 复制
9
提示
刚开始集合为{1,3,5,7,9}。
选1和3 => 2
选3和5 => 4
选5和7 => 6
选7和9 => 8
生成的数如2,4,6,8也可以选,但是可以证明,不管你怎么选,你生成不了超过9的数。
所以最终的集合为{1,2,3,4,5,6,7,8,9}。注意:集合中不能包含重复的数。
时间限制:c/c++:1s; 其他语言:2s.