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}

13 => 2

35 => 4

57 => 6

79 => 8

生成的数如2,4,6,8也可以选,但是可以证明,不管你怎么选,你生成不了超过9的数。

所以最终的集合为{1,2,3,4,5,6,7,8,9}。注意:集合中不能包含重复的数。

时间限制:c/c++:1s; 其他语言:2s.