View Code of Problem 32

#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char const *argv[])
{
    int X,Y,x[5],y[5],hp[5],L;
    double R,dis[5];
    bool flag;
    while(scanf("%d %d",&X,&Y)!=EOF){
        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 %lf",&L,&R);
        
        flag = false;
        
        for (int i = 0; i < 5; i++)
        {
            if (L>=dis[i] && R*dis[i]>=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] && dis[j]*R<hp[j]){
                        flag = false;
                    }
                    else
                        flag = true;
                }
            }
            if(flag)
                break;
        }
        
        if (!flag)
            printf("No\n");
        else
            printf("Yes\n");
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 32