#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<list>
#include<vector>
using namespace std;
struct Nodee{
double P;
long long l,r,num;
}A[100010];
int main()
{
int i,j,k,n;
long long p;
while(scanf("%d%I64d",&n,&p)!=EOF){
for(i=0;i<n;++i){
scanf("%I64d%I64d",&A[i].l,&A[i].r);
long long ll,rr;
if(A[i].l%p==0)ll=A[i].l;
else ll=A[i].l/p*p+p;
rr=A[i].r/p*p;
if(ll==rr){
A[i].num=1;
}
else if(ll>A[i].r){
A[i].num=0;
}
else {
A[i].num=(rr-ll)/p+1;
}
A[i].P=(A[i].num*1.0)/(1.0*(A[i].r-A[i].l+1));
}
double ans=0;
for(i=0;i<n;++i){
ans+=2000.0*(1.0-(1.0-A[i].P)*(1.0-A[(i+1)%n].P));
}
printf("%.6lf\n",ans);
}
return 0;
}
codeforces621C. Wet Shark and Flowers【求期望】
最新推荐文章于 2019-04-04 01:14:36 发布