View Code of Problem 32

#include <stdio.h>
#include <math.h>
using namespace std;
int main(){
	int X,Y;
	int x[5],y[5],hp[5];
	int L;
	double R,dis[5];
	int flag;
	while( ~scanf("%d%d", &X, &Y) ){
		for( int i=0; i<5; i++ ){
			scanf("%d%d%d", &x[i], &y[i], &hp[i]);
			dis[i] = sqrt(pow(x[i]-X,2)+pow(y[i]-Y,2));
		}
		scanf("%d %lf", &L, &R );
		for( int i=0; i<5; i++ ){
			flag =0;
			double h = 1.0*R*dis[i];
			if( dis[i]<=L &&h>hp[i] ){
				for( int j=0;j<5; j++ ){
					if( i!=j && (x[i]-X)*(y[j]-Y) == (x[j]-X)*(y[i]-Y) && dis[j]<dis[i] && hp[j]>1.0*dis[j]*R){
						flag = 0;
					    break;
					}else{
						flag = 1;
					}
				}
				if( flag == 1) break;
			}
		}
		if( flag == 1 ) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
	
}

Double click to view unformatted code.


Back to problem 32