题目描述
兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,并且给出敌人 的坐标. 问:那么敌人受到伤害会是多大?
输入描述:
第一行9个整数,R,x1,y1,x2,y2,x3,y3,x0,y0.R代表炮台攻击的最大距离,(x1,y1),(x2,y2), (x3,y3)代表三个炮台的坐标.(x0,y0)代表敌人的坐标.
输出描述:
输出一行,这一行代表敌人承受的最大伤害,(如果每个炮台都不能攻击到敌人,输出0×)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((s = br.readLine()) != null) {
String c[] = s.split(" ");
int r = Integer.parseInt(c[0]);// 炮塔攻击范围
int ax = Integer.parseInt(c[7]);// 敌人x坐标
int ay = Integer.parseInt(c[8]);// 敌人y 坐标
int max = 0;// 被攻击次数
for (int i = 0; i < 6; i = i + 2) {
int temp0 = (int) Math.pow((ax - Integer.parseInt(String.valueOf(c[i + 1]))), 2);// 第i个炮塔的x坐标
int temp1 = (int) Math.pow((ay - Integer.parseInt(String.valueOf(c[i + 2]))), 2);// 第i个炮塔的y坐标
int temp2 = temp0 + temp1;// (x-x0)^2+(y-y0)^2
double temp = Math.sqrt(temp2);
// System.out.println();
if (temp <= r)// 敌人如果在炮塔攻击范围内则敌人被攻击
max++;// 更新敌人被轰炸次数
}
System.out.println(max + "x");
}
}
}