#2wa求助
查看原帖
#2wa求助
1004505
mhs2023楼主2024/1/13 11:31

这是代码

#include<bits/stdc++.h>
using namespace std;
int n,d;
struct node
{
    int left,right;
};
node a[1005];
bool cmp(node x,node y)
{
    return x.right<y.right;
}
long long sum,r;
int main()
{
    scanf("%d %d",&n,&d);
    for (int i=1;i<=n;i++)
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if (y>d)
        {
            printf("-1\n");
            return 0;
        }
        int m;
        m=sqrt(d*d-y*y);
        a[i].left=x-m;
        a[i].right=x+m;
    }
    sort(a+1,a+n+1,cmp);
    sum=0;
    r=-LONG_LONG_MAX;
    for (int i=1;i<=n;i++)
    {
        if (a[i].left>r)
        {
            sum++;
            r=a[i].right;
        }
    }
    printf("%lld\n",sum);
    return 0;
}

输入这组数据因为数据过大所以放在这个链接里 答案是 55 而我的答案是 66

2024/1/13 11:31
加载中...