题目来源:http://116.56.140.75:8000/JudgeOnline/problem.php?id=1716
1716: 投飞镖
时间限制: 1 Sec 内存限制: 64 MB题目描述
“嗦嗦嗦”,一支支飞镖脱手而出,直奔镖盘而去,有多少支飞镖命中了目标呢?让我们来算一算!给定飞镖在镖盘平面的坐标,给定镖盘半径和镖盘中心在镖盘平面坐标系中的坐标,请你编程计算中靶的镖数。
输入
第一行包含3个整数x0,y0,r,-2^32≤x0,y0,r≤2^32-1,分别表示镖盘中心坐标和半径。第二行有一个整数n(1≤n≤1000),表示投出的飞镖数。其后的n行,每行包含2个整数x,y,-2^32≤x,y≤2^32-1,表示飞镖插在镖盘平面的坐标。
输出
输出命中和没有命中的镖的支数。格式参照输出样例。
样例输入
0 0 3
3
1 1
0 -3
3 3
样例输出
goals:2
fails:1
解析:注意一下判断条件,不要去开根号
代码:
#include<iostream>
using namespace std;
int main()
{
int goals = 0, fails = 0;
long long int x, y, r;
cin >> x >> y >> r;
int t;
cin >> t;
long long int m, n;
while (t--)
{
cin >> m >> n;
if ((m - x)*(m - x) + (n - y)*(n - y) >= r*r)
goals++;
else
fails++;
}
cout << "goals:" << goals << endl;
cout << "fails:" << fails << endl;
return 0;
}
/**************************************************************
Problem: 1716
User: 201730685257
Language: C++
Result: 正确
Time:0 ms
Memory:1484 kb
****************************************************************/