Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
所有数据都通过了,但还是wa啊。。帮忙看看,谢谢#include"stdio.h" #include"math.h" void main() { double x1=-1,y1=-1,x0=-1,y0=-1,b=-1; double k1,k2,p=0; double sum=0; int h=-1,n=-1; double x[1000]={0},y[1000]={0}; int i; while(1) { scanf("%d%d",&n,&h); if((n==0)&&(h==0)) break; for(i=0;i<n;i++) scanf("%lf%lf",&x[i],&y[i]); if(h!=y[0]) sum+=sqrt((y[1]-y[0])*(y[1]-y[0])+(x[1]-x[0])*(x[1]-x[0])); x1=x[1];y1=y[1]; for(i=2;i<n;i++) { k1=(y1-h)/x1; y0=k1*x[i]+h; k2=(y[i]-y[i-1])/(x[i]-x[i-1]); b=y[i]-((y[i]-y[i-1])*x[i])/(x[i]-x[i-1]); if(y0<y[i]) { x0=(b-h)/(k1-k2); y0=k2*x0+b; if(y[i-1]>=y0) y0=y[i-1]; p=sqrt((y[i]-y0)*(y[i]-y0)+(x[i]-x0)*(x[i]-x0)); sum+=sqrt((y[i]-y0)*(y[i]-y0)+(x[i]-x0)*(x[i]-x0)); x1=x[i]; y1=y[i]; } } printf("%.2lf\n",sum); sum=0; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator