题目
原题链接:B. Han Solo and Lazer Gun
题意
原点在x0,y0,有n个小人,问最少需要多少下激光可以打死所有小人。
参考了其他作者的代码,利用set存每个小人所在地方和原点的斜率即可。特判x==a,因为会出现除0。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a,b,x,y,sum=0,flag=0;
set<double> p;
scanf("%d%d%d",&n,&a,&b);
for(int i=0;i<n;i++){
scanf("%d%d",&x,&y);
if(x==a){
flag=1;
}else{
p.insert((y-b)*1.0/(x-a));
}
}
sum+=flag;
sum+=p.size();
printf("%d\n",sum);
return 0;
}