| ||||||||||
| 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 | |||||||||
贪心水之!!!附代码!!#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct Point
{
double left;
double right;
}p[5012];
bool cmp(Point a,Point b)
{
return a.left<b.left;
}
int main()
{
int i,j,n,m;
int r;
int o=0;
while(~scanf("%d%d",&n,&r),n,r)
{
int a,b;
bool flag=true;
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
if(abs(b)>r)
{
flag=false;
}
p[i].left=a*1.000-sqrt(r*r*1.00-b*b*1.0000);
p[i].right=a*1.000+sqrt(r*r*1.00-b*b*1.0000);
}
printf("Case %d: ",++o);
if(flag==false)
puts("-1");
else
{
sort(p,p+n,cmp);
int cnt=1;
double temp=p[0].right;
for(i=1;i<n;i++)
{
if(p[i].right<temp)
{
temp=p[i].right;
}
else if(p[i].left>temp)
{
cnt++;
temp=p[i].right;
}
}
printf("%d\n",cnt);
}
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator