#include <iostream> #include<string.h> #include<math.h> using namespace std; int main() { int X,Y; while(scanf("%d %d",&X,&Y)!=EOF) { int x[5],y[5],hp[5]; int d1[5],d2[5]; double d[5]; int i; for(i=0;i<5;i++) { scanf("%d %d %d",&x[i],&y[i],&hp[i]); d1[i]=x[i]-X; d2[i]=y[i]-Y; d[i]=sqrt(d1[i]*d1[i]+d2[i]*d2[i]); } int l; double r; int flag=0; scanf("%d %lf",&l,&r); for(i=0;i<5;i++) { double h=1.0*r*d[i]; if(h>hp[i]&&l>=d[i])//如果距离和伤害足够 { flag=0; for(int j=0;j<5;j++) { if(j!=i&&(d1[i]*d2[j]==d1[j]*d2[i])&&d[i]>d[j]&&hp[j]>1.0*d[j]*r) //判断路径上是否有其他英雄 { flag=0; break; } else flag=1; } } } if( flag == 1 ) printf("Yes\n"); else printf("No\n"); } return 0; } |
Double click to view unformatted code.