Problem2598--星露谷物语

2598: 星露谷物语

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

在《星露谷物语》中,Lewis是鹈鹕镇的镇长,号称鹈鹕镇现金王,因为不管你卖多少东西他总会有钱给你。。

今天是秋季的星露谷展览会,有 n 个农民带来了他们自己种的农作物,他们都围坐在桌子旁,这样一来农民 ii+1 就是相邻的,农民 1n 也是相邻的。

每个农民带来的农作物的价值为 s ,第 i 个农民的农作物价值 si 是在 liri 之间随机选择的整数(每个整数被选择的概率是相同的),Lewis有他最喜欢的素数 p,如果对于任何一对相邻的农民 ij ,有乘积 si × sj 可以被 p 整除,那么Lewis就会很高兴,并给这一对农民每人1000元。

当展览会结束时,所有农民会将他们得到的钱全部加起来,求这个值的期望值。

Input

输入的第一行包含两个空格分隔的整数 np ( 3 ≤ n ≤ 105 , 2 ≤ p ≤ 109)--农民的数量和Lewis最喜欢的素数。数据保证 p 为素数。

接下来 n 行中的第 i 行包含两个整数 liri ( 1 ≤ liri ≤ 109 ),即第 i 个农民的农作物的价值范围。(请记住, liri 之间包含这两个数在内的所有整数被选择的概率是相同的)

Output

输出一个实数--所有农民预期收到的钱的总数。答案保留两位小数。

Sample Input Copy

3 2
1 2
420 421
420420 420421

Sample Output Copy

4500.00

HINT

请看样例:

第一个农民的农作物价值范围从 1 到 2 ,第二个农民的农作物价值从 420 到 421 ,第三个农民的农作物价值从 420420 到 420421 。每个农民的农作物价值 (s0, s1, s2) 的数量有八种情况:

  • (1, 420, 420420) :注意 s0·s1 = 420 、 s1·s2 = 176576400 和 s2·s0 = 420420 。每对农民将获得 1000 元,共6000。
  • (1, 420, 420421) :现在,积 s2·s0 不能被 2 整除。因此,农民 s0 和 s2 将获得 1000 元,而农民 s1 将获得 2000 元。总数为 4000。
  • (1, 421, 420420) :总数为 4000。
  • (1, 421, 420421) :总数为 0。
  • (2, 420, 420420) :总数是 6000。
  • (2, 420, 420421) :总数是 6000。
  • (2, 421, 420420) :总数是 6000。
  • (2, 421, 420421) :总数为 4000。
(6000+4000+4000+0+6000+6000+6000+4000)/8=4500.00

Source/Category

admin