View Code of Problem 32

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

Double click to view unformatted code.


Back to problem 32