Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other.
2016-07-14 18:51
706 查看
#include<stdio.h>
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
using namespace std;
struct frame
{
double x;
double y;
}c[1001];
struct range
{
double l, r;
}g[1001];
bool cmp(range a, range b)
{
return a.l<b.l;
}
int main()
{
int n, d, i;
int Case = 0;
while(~scanf("%d%d", &n, &d))
{
if(n==0&&d==0)
break;
int sum = 1;
for(i=0; i<n; i++)
{
scanf("%lf%lf", &c[i].x, &c[i].y);
g[i].l = c[i].x - sqrt(d*d-c[i].y*c[i].y);
g[i].r = c[i].x + sqrt(d*d-c[i].y*c[i].y);
if(c[i].y>d|| d<=0 || c[i].y<0) sum = -1;
}
sort(g, g+n, cmp);
double m = g[0].r;
for(i=1; i<n&&sum!=-1; i++)
{
if(m < g[i].l)
{
sum++;
m = g[i].r;
}
else if(m > g[i].r)
m = g[i].r;
}
printf("Case %d: %d\n", ++Case, sum);
}
return 0;
}
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
using namespace std;
struct frame
{
double x;
double y;
}c[1001];
struct range
{
double l, r;
}g[1001];
bool cmp(range a, range b)
{
return a.l<b.l;
}
int main()
{
int n, d, i;
int Case = 0;
while(~scanf("%d%d", &n, &d))
{
if(n==0&&d==0)
break;
int sum = 1;
for(i=0; i<n; i++)
{
scanf("%lf%lf", &c[i].x, &c[i].y);
g[i].l = c[i].x - sqrt(d*d-c[i].y*c[i].y);
g[i].r = c[i].x + sqrt(d*d-c[i].y*c[i].y);
if(c[i].y>d|| d<=0 || c[i].y<0) sum = -1;
}
sort(g, g+n, cmp);
double m = g[0].r;
for(i=1; i<n&&sum!=-1; i++)
{
if(m < g[i].l)
{
sum++;
m = g[i].r;
}
else if(m > g[i].r)
m = g[i].r;
}
printf("Case %d: %d\n", ++Case, sum);
}
return 0;
}
相关文章推荐
- The working copy"XXX" failed to commit files
- 人工智能的革命:道德可以被编程么?
- Aizu 2677 Breadth-First Search by Foxpower LCA+bfs
- SetupDiGetDeviceInterfaceDetail
- Winform线程间操作无效从不是创建控件的线程访问它的几个解决方案async和await?
- hdu 1789 Doing Homework again
- AIS原始数据
- Climbing Stairs
- 正则表达式用户名密码电话身份证Email使用
- OpenJ_Bailian 4081 树的转换 数据结构
- No grammar constraints (DTD or XML schema).....解决方法
- svn报错(svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted)
- ajax请求成功,但没执行success(done),执行了error(fail)
- int main(int argc, const char *argv[]) 详解
- [Leetcode]219. Contains Duplicate II
- hdu 1799 Doing Homework again
- async和await
- int main(int argc, char *argv[])
- 解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.
- DDR2 DDR3 constraint & ac check note of SDCTRL Verification