View Code of Problem 32

#include<iostream>
#include<cmath>
using namespace std;
//不知道为什么两个英雄距离d 只开方横轴?
int main() {
	int x0,y0,x[5],y[5],hp[5],L;
	double R;
	while(cin>>x0>>y0) {
		for(int i=0; i<5; i++) cin>>x[i]>>y[i]>>hp[i];
		cin>>L>>R;
		int flag=0;//是否能干掉一个英雄 
		for(int i=0; i<5; i++) {
			//首先计算两个英雄相距d
			double d=sqrt(pow(x0-x[i],2))+pow(y0-y[i],2);
			//如果d没有超过超过L 计算hp-d*R是否<=0 
			if(d<=L&&hp[i]<=d*R) {
				flag=1;//可以击杀
				break; 
			}
		}
		if(flag==1) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
}

Double click to view unformatted code.


Back to problem 32