CF271E.Three Horses
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are three horses living in a horse land: one gray, one white and one gray-and-white. The horses are really amusing animals, which is why they adore special cards. Each of those cards must contain two integers, the first one on top, the second one in the bottom of the card. Let's denote a card with a on the top and b in the bottom as (a, b).
Each of the three horses can paint the special cards. If you show an (a, b) card to the gray horse, then the horse can paint a new (a + 1, b + 1) card. If you show an (a, b) card, such that a and b are even integers, to the white horse, then the horse can paint a new
card. If you show two cards (a, b) and (b, c) to the gray-and-white horse, then he can paint a new (a, c) card.
Polycarpus really wants to get n special cards (1, _a_1), (1, _a_2), ..., (1, a__n). For that he is going to the horse land. He can take exactly one (x, y) card to the horse land, such that 1 ≤ x < y ≤ m. How many ways are there to choose the card so that he can perform some actions in the horse land and get the required cards?
Polycarpus can get cards from the horses only as a result of the actions that are described above. Polycarpus is allowed to get additional cards besides the cards that he requires.
马国生活着三匹马:一匹灰色的,一匹白色的,还有一匹灰白相间的。马儿们是极富趣味的动物,因此它们格外喜爱一种特殊的卡片。每张卡片上必须包含两个整数,上方一个,下方一个。我们将一张上方为 a、下方为 b 的卡片记作 (a,b)。
这三匹马各自都能绘制这种特殊卡片。
- 若将一张 (a,b) 卡片展示给灰马,则灰马可以绘制一张新的 (a+1,b+1) 卡片;
- 若将一张 (a,b) 卡片(其中 a 与 b 均为偶数)展示给白马,则白马可以绘制一张新的
卡片; - 若将两张卡片 (a,b) 和 (b,c) 展示给灰白马,则灰白马可以绘制一张新的 (a,c) 卡片。
波利卡普斯非常想获得 n 张特殊卡片:(1,a1),(1,a2),…,(1,an)。为此,他将前往马国。他只能随身携带恰好一张初始卡片 (x,y) 进入马国,且须满足 1≤x<y≤m。问:有多少种选择初始卡片的方式,使得他能在马国通过上述操作得到所有所需的卡片?
波利卡普斯仅能通过上述描述的操作从马儿那里获得卡片。他被允许额外获得一些非必需的卡片。
输入格式
The first line contains two integers n, m (1 ≤ n ≤ 105, 2 ≤ m ≤ 109). The second line contains the sequence of integers _a_1, _a_2, ..., a__n (2 ≤ a__i ≤ 109). Note, that the numbers in the sequence can coincide.
The numbers in the lines are separated by single spaces.
第一行包含两个整数 n 和 m(1≤n≤105,2≤m≤109)。第二行包含一个整数序列 a1,a2,…,an(2≤ai≤109)。注意,序列中的数字可以重复。
每行中的数字以单个空格分隔。
输出格式
Print a single integer — the answer to the problem.
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.
输出一个整数——即该问题的答案。
请注意,在 C++ 中不要使用 %lld 说明符来读取或写入 64 位整数。推荐使用 cin、cout 流,或 %I64d 说明符。
输入输出样例
输入#1
1 6 2
输出#1
11
输入#2
1 6 7
输出#2
14
输入#3
2 10 13 7
输出#3
36
输入解题思路,AI测评打分。不知道怎么写?