📄 1007_other.cpp
字号:
//1545 2003-05-24 15:26:19 Accepted 1007 C++ 00:00:06 392K just for play
#include<math.h>
#include<stdio.h>
const double precison=10e-8;
inline double equal_db(double fir,double sec)
{
return (fabs(fir-sec)<precison);
}
void bubble_sort(double num[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
int pt=i;
for(j=i+1;j<n;j++)
if(num[j]<num[pt]+precison) pt=j;
if(pt!=i)
{
double temp=num[i];
num[i]=num[pt];num[pt]=temp;
}
}
}
double pow_n(int n,int tt)
{
double result=1;int i;
for(i=0;i<tt;i++)
result*=(double)n;
return result;
}
int main()
{
// freopen("1007.in","r",stdin);
// freopen("1007.out","w",stdout);
int n;
while(scanf("%d",&n)!=EOF)
{
double point[500];
int cnt=0;int i,j;
double from[101],to[101];
for(i=0;i<n;i++)
{
scanf("%lf%lf",&from[i],&to[i]);
for(j=0;j<cnt;j++)
if(equal_db(point[j],from[i])) break;
if(j==cnt) point[cnt++]=from[i];
for(j=0;j<cnt;j++)
if(equal_db(point[j],to[i])) break;
if(j==cnt) point[cnt++]=to[i];
}
bubble_sort(point,cnt);
double result=0;
for(i=0;i<cnt-1;i++)
{
int total=0;
for(j=0;j<n;j++)
if(point[i]+precison>from[j]&&to[j]+precison>point[i+1]) total++;
double tt=pow_n(n,total);
result+=(tt-1)*(point[i+1]-point[i]);
}
printf("%d\n",n);
printf("%.10e\n",result);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -