| ||||||||||
| 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 | |||||||||
Re:帮忙啊,坚强的wa中In Reply To:帮忙啊,坚强的wa中 Posted by:ning at 2006-04-15 10:34:43 > //pku2074.cpp
> //wa中
> #include<stdio.h>
> #include<math.h>
> #include<stdlib.h>
>
> #define N 5000
> typedef struct _OBJ
> {
> double x1,x2,y;
> }OBJ;
> typedef struct _POINT
> {
> double x,y;
> }POINT;
> POINT array[N];
> int pp;
> double fmax(double a,double b)
> {
> return a>b?a:b;
> }
> double ShadowPoint (POINT p1,POINT p2,double y0)//p1 为上面点,p2 为下面 y0为property 的Y
> {
> return p2.x-(p1.x-p2.x)*(p2.y-y0)/(p1.y-p2.y);
> }
> void Shadow(OBJ H,OBJ A,OBJ PROP)
> {
> POINT p1,p2;
> if(H.y>A.y&&A.y>PROP.y)
> {
> p1.x=H.x2,p1.y=H.y;
> p2.x=A.x1,p2.y=A.y;
> array[pp].x=ShadowPoint (p1,p2,PROP.y);//求左端点
> p1.x=H.x1,p1.y=H.y;
> p2.x=A.x2,p2.y=A.y;
> array[pp].y=ShadowPoint (p1,p2,PROP.y);
> pp++;
> }
>
> }
> int Cmp(const void *a,const void *b)
> {
> return ( (POINT *)a)->x-( (POINT *)b)->x>0;
> }
> int main()
> {
> OBJ h,a,prop;
> int n,ii;
> double ans,lasty,tmp;
> for(;scanf("%lf%lf%lf",&h.x1,&h.x2,&h.y);)
> {
> if(h.x1==0.&&h.x2==0.&&h.y==0.)
> break;
> scanf("%lf%lf%lf%d",&prop.x1,&prop.x2,&prop.y,&n);
> if(!n)
> {
> printf("%lf\n",prop.x2-prop.x1);
> continue;
> }
> for(pp=0;n--;)
> {
> scanf("%lf%lf%lf",&a.x1,&a.x2,&a.y);
> Shadow(h,a,prop);
> }
> qsort(array,pp,sizeof(array[0]),Cmp);//按x1有序。
> ans=array[0].x-prop.x1,lasty=prop.x1;
> for(ii=0;ii<pp;ii++)
> {
> if(array[ii].x>lasty)
> {
> tmp=array[ii].x-lasty;
> ans=fmax(ans,tmp);
> lasty=array[ii].y;
> }
> if(array[ii].y>lasty)
> lasty=array[ii].y;
> /*
> if(array[ii-1].y>prop.x2)
> array[ii-1].y=prop.x2;
>
> tmp=array[ii].x-array[ii-1].y;
> ans=fmax(ans,tmp);
> */
> }
> ans=fmax(ans,prop.x2-lasty);
> if(ans<=.000000000001)
> printf("No View\n");
> else
> printf("%.2lf\n",ans);
>
> }
> return 0;
> }
> /*
> 2 6 6
> 0 15 0
> 3
> 12 13 1
> 2.5 4 1
> 1 2 1
>
> 2 6 6
> 0 15 0
> 4
> 12 13 1
> 1 15 5
> 3 4 1
> 1 2 1
>
> 1 5 5
> 0 10 0
> 1
> 0 15 1
> 0 0 0
>
> */
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator