题解:P15056 [UOI 2023 II Stage] Unenslaved puppy
题解
根据圆的定义,如果一个点与圆心的距离小于等于半径,则它在圆内。
因此我们用勾股定理计算
注意这题中,正好卡在防护罩上也算在里面。此外 y1 是 cmath 头文件的关键字。
代码
#include<iostream>
#include<cmath>
using namespace std;
int n,x1,y_1,x2,y2,pos,r;
int main(){
cin>>n>>x1>>y_1>>x2>>y2;
for(int i=1;i<=n;i++){
cin>>pos>>r;
double d1=sqrt((pos-x1)*(pos-x1)+y_1*y_1),d2=sqrt((pos-x2)*(pos-x2)+y2*y2);
if((d1<=r)!=(d2<=r)){
cout<<"NO\n"<<i;
return 0;
}
}
cout<<"YES";
return 0;
}