比赛 贪心题目练习 评测结果 AAAAAAAAWA
题目名称 监控安装 最终得分 90
用户昵称 TeaWine 运行时间 0.034 s
代码语言 C++ 内存使用 3.37 MiB
提交时间 2025-03-22 10:31:04
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

struct bd{
    long long x,y;
};

long long n,r,num;
bd a[1086];

bool cmp(bd a,bd b){
    if(a.x==b.x)return a.y>b.y;
    return a.x<b.x;
}
int main (){
    
    freopen("monitor.in","r",stdin);    
    freopen("monitor.out","w",stdout);
    
    cin>>n>>r;
    for(int i = 1; i<=n; i++){
        cin>>a[i].x>>a[i].y; 
        if(a[i].y>r){
            cout<<-1;
            return 0;
        }
    }
    
    sort(a+1,a+n+1,cmp);
    long long nx=a[1].x+(sqrt(r*r-a[1].y*a[1].y));
    for(int i = 1; i<=n; i++){
        if((nx-a[i].x)*(nx-a[i].x)+a[i].y*a[i].y>r*r){
            if(nx<=a[i].x)num++;
            nx=a[i].x+(sqrt(r*r-a[i].y*a[i].y));
        } 
        
    } 
    
    cout<<num+1;
    
    return 0;
} 
/*

3 2
1 2
-3 1
2 1


*/