文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>POJ 1328

POJ 1328

时间:2011-03-14  来源:vSylar

判断不可行条件之后不可以直接跳出读取循环,否则会造成RUNTIME ERROR的错误!

不知道是不是sort的原因,运行时间较长

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct island
{
  double r,l;
};
bool cmp(island a,island b)
{
  return a.l<b.l;
}
int main()
{
  int n,r,k=0;
  double x,y;
  island p[1005];
  while(cin>>n>>r &&(n||r))
    {
      int err=0;
      int rr=r*r;
      for(int i=0; i<n; i++)
        {
          cin>>x>>y;
          if(fabs(y)>r)
            {
              err=1;
              //break;
            }
          p[i].l=x-sqrt(rr-y*y);
          p[i].r=x+sqrt(rr-y*y);
        }
      cout<<"Case "<<++k<<": ";
      if(err)
        {
          cout<<"-1"<<endl;
          continue;
        }
      sort(p,p+n,cmp);
      double now=p[0].r;
      int ans=1;
      for(int i=1; i<n; i++)
        {
          if(now>p[i].r) now=p[i].r;
          else if(now<p[i].l)
            {
              ans++;
              now=p[i].r;
            }
        }
      cout<<ans<<endl;
    }
  return 0;
}
相关阅读 更多 +
排行榜 更多 +
宝宝情商养成宝宝巴士

宝宝情商养成宝宝巴士

休闲益智 下载
燥热手机版

燥热手机版

飞行射击 下载
巨人狙击手安卓版

巨人狙击手安卓版

飞行射击 下载