打靶归来

题目来源:http://116.56.140.75:8000/JudgeOnline/problem.php?id=1717

1717: 打靶归来

时间限制: 1 Sec 内存限制: 64 MB

题目描述

同学们参加了紧张有序的军训,对于实弹射击有极大的兴趣。大清早随教官扛着枪往数公里外的靶场进发。300米实弹射击训练正式开始,各种射击姿势,俯卧、半蹲或站立,同学们各个练得有板有眼。等到报靶员出场报出每个靶的环数了,同学们的枪法还不错! 我们的靶子为同心圆状,直径有2000毫米。我们规定,子弹打在靶子平面所对应的点与靶心的距离d,环数的计算标准规定如下: d>1000 为0环; 1000≥d≥900 为1环; 900>d≥800 为2环; 800>d≥700 为3环; 700>d≥600 为4环; 600>d≥500 为5环; 500>d≥400 为6环; 400>d≥300 为7环; 300>d≥200 为8环; 200>d≥100 为9环; 100>d≥0 为10环现在要你统计某人打靶练习的总环数。

输入

第一行包含2个整数,表示靶心在靶平面的坐标。第二行包含一个整数n(1≤n≤1000),表示射出子弹的发数。其后的n行,每行表示子弹打在靶平面的坐标。

输出

输出总环数。

样例输入

0 0
5
0 0
0 100
50 50
-80 80
90 -90

样例输出

47

解析:注意环数的判断条件,不要开根号,否则可能产生浮点型错误

代码:

#include<iostream> 
using namespace std; 
int main() 
{ 
    long long int goals = 0; 
    long long int x, y; 
    cin >> x >> y ; 
    int t; 
    cin >> t; 
    long long int m, n; 
    while (t--) 
    { 
        cin >> m >> n; 
        if ((m - x)*(m - x) + (n - y)*(n - y) > 1000 * 1000) 
            goals += 0; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 900 * 900) 
            goals += 1; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 800 * 800) 
            goals += 2; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 700 * 700) 
            goals += 3; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 600 * 600) 
            goals += 4; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 500 * 500) 
            goals += 5; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 400 * 400) 
            goals += 6; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 300 * 300) 
            goals += 7; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 200 * 200) 
            goals += 8; 
        else if ((m - x)*(m - x) + (n - y)*(n - y) >= 100 * 100) 
            goals += 9; 
        else
            goals += 10; 
    } 
    cout << goals; 
    return 0; 
} 
/************************************************************** 
    Problem: 1717 
    User: 201730685257 
    Language: C++ 
    Result: 正确 
    Time:0 ms 
    Memory:1484 kb 
****************************************************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值