Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

老是tle 怀疑是读入数据时的问题,我把intersect全部return 1 了还是tle ,帮忙看看

Posted by ning at 2006-01-03 10:43:54 on Problem 2653
/*pku 2653 Pick-up sticks 051221 */
#include<stdio.h>
#define N 100000
typedef struct line{
    float x1,x2,y1,y2;
    long flag;
    }LINE;
int intersect(LINE* l1,LINE* l2)
{
    float dx,dy;
    if( (l1->x1>l2->x2) || (l1->y1>l2->y2) ||
        (l2->x1>l1->x2) || (l2->y1>l1->y2) )
        return 0;

    dx=l1->x1-l1->x2,dy=l1->y1-l1->y2;
    if(  (dx*(l2->y1-l1->y1)-dy*(l2->x1-l1->x1) )*
    (dx*(l2->y2-l1->y1)-dy*(l2->x2-l1->x1) )>0  )
        return 0;
    dx=l2->x1-l2->x2,dy=l2->y1-l2->y2;

    if(  (dx*(l1->y1-l2->y1)-dy*(l1->x1-l2->x1) )*
    (dx*(l1->y2-l2->y1)-dy*(l1->x2-l2->x1) )>0  )
        return 0;
    return 1;
}
LINE top[N];
int main()
{
    float x11,y11,x21,y21;
    long sticks,ii,jj;
    for(;scanf("%ld",&sticks);)
    {
        if(!sticks)
            return;
        for(jj=0;jj<sticks;jj++)
        {
            top[jj].flag=jj+1;
            scanf("%f%f%f%f",&x11,&y11,&x21,&y21);
            (top[jj].x1)=(x11>x21)?x21:x11,
            (top[jj].y1)=(y11>y21)?y21:y11,
            (top[jj].x2)=(x11<x21)?x21:x11,
            (top[jj].y2)=(y11<y21)?y21:y11;

            for(ii=0;ii<jj;ii++)
                if(top[ii].flag&&intersect(&top[ii],&top[jj]))
                {
                    top[ii].flag=0;
                }
        }
        printf("Top sticks: ");
        for(jj=0;!(top[jj].flag);jj++)
            ;
        printf("%ld",top[jj].flag);
        for(jj++;jj<sticks;jj++)
            if(top[jj].flag)
                printf(", %ld",top[jj].flag);
        printf(".\n");
    }
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator