View Code of Problem 32

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
struct F
{
	int x;
	int y;
	int hp;
};
 
int main(){
	int x,y;
	double r;
	int l;
	int flag;
	while(scanf("%d %d",&x,&y)!=EOF){
		struct F f[5];
		for(int i=0;i<5;i++){
			scanf("%d %d %d",&f[i].x,&f[i].y,&f[i].hp);
		}
		flag=0;
		scanf("%d %lf",&l,&r);
		
		for(int i=0;i<5;i++){
			
			double dis=sqrt(pow(abs(f[i].x-x),2)+pow(abs(f[i].y-y),2));
			double max=dis*1.0*r;
			if(dis<=l&&f[i].hp<=max){
					flag=1;
			}
			for(int j=0;j<5;j++){
				double now=sqrt(pow(abs(f[j].x-x),2)+pow(abs(f[j].y-y),2));
				if(j!=i&&now<dis&&f[i].x*f[j].y==f[j].x*f[i].y){//挡勾 
						flag=0;
				}
			}
		}
		if(flag==1){
			printf("Yes\n");
		}else{
			printf("No\n");
		}
	}
}
 
 

Double click to view unformatted code.


Back to problem 32