您的位置:首页 > 大数据 > 人工智能

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: