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

超时啊,求大牛解释!!!

Posted by grymx at 2011-05-04 21:36:49 on Problem 1328
#include<stdio.h>
#include<math.h>
int main ()
{
    int case1[1000];
    int count=0;
    int i,j;
    int n,d;
    int temp1,temp2;
    int locax[1000],locay[1000];
    int labx[1000],laby[1000];
    int pointx,pointy;
    for(i=1;i<1000;i++)
      case1[i]=-2;
    while(scanf("%d%d",&n,&d),n||d)
    {
      count++;
      case1[count]=1;
      for(i=1;i<n+1;i++)
      {   
          scanf("%d%d",&locax[i],&locay[i]);
          labx[i]=locax[i]-sqrt(d*d-locay[i]*locay[i]);
          laby[i]=locax[i]+sqrt(d*d-locay[i]*locay[i]);
                                   }
      for(i=1;i<n+1;i++)
         for(j=i+1;j<n+1;j++)
             if(laby[i]>laby[j])
             {
               temp1=labx[i];
               labx[i]=labx[j];
               labx[j]=temp1;
               temp2=laby[i];
               laby[i]=laby[j];
               laby[j]=temp2;
                                }
      pointx=labx[1];
      pointy=laby[1];
      for(i=2;i<n;i++)
      {           
        if(laby[i]>d)
        {case1[count]=-1;
          break;}
        else if(labx[i]>pointy)
          {case1[count]++;
           pointx=labx[i];
           pointy=laby[i];

          }
        else  if(labx[i]>pointx)
                pointx=labx[i];
                }
      }
      i=1;
      while(case1[i]!=-2)
      { printf("Case %d: %d\n",i,case1[i]);
      i++;}
      getch();
    return 0;
}

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