#include<stdio.h> #define C 299792458 #define DIS 200000 #define LTT /1000000.0 //distance 距离 #define VV(f0,f1) ((f1-f0)/(f1+f0)*C) int main() { int i, n; int IFF;// 敌友识别 double f0, f1, v, s, t; int lt;// lead time 时间差距 double ss[10000]; int flag[10000]; long a = DIS, b = DIS, c = DIS, temp; int aa = 0, bb = 0, cc = 0, tempp; scanf("%d", &n); for (i=0; i<n; i++) { scanf("%d %lf %lf %d", &IFF, &f0, &f1, <); //t = (C LTT / 2 * lt - DIS) / VV(f0,f1); //t = C LTT / 2 * lt - DIS; //t = (C /5 * lt - 2) / 100000; //printf("Target%d:NO:%lf", (i+1), t); if (IFF == 1) flag[i] = 1; //printf("Target%d:NO:ONE OF US", (i+1)); else { if (v=VV(f0,f1) < 0) flag[i] = 2; //printf("Target%d:NO:AWAY", (i+1)); else { //s = 299792458 / 1000000 / 2 * lt; //s=C*lt LTT/2; if (s=C LTT/2*lt > DIS) { t = (C LTT / 2 * lt - DIS) / VV(f0,f1); flag[i] = 3; ss[i] = t; //printf("Target%d:NO:%.4lf", (i+1), t); } else { s=C LTT/2*lt; flag[i] = 4; ss[i] = s; } } } } for (i=0; i<n; i++) { if (flag[i] == 4) { if (ss[i] < a) { tempp = i; temp = ss[i]; if (temp < a) { a = temp; aa = tempp; if (a <= b) { temp = a; tempp = aa; a = b; aa = bb; b = temp; bb = tempp; } if (b <= c) { temp = b; tempp = bb; b = c; bb = cc; c = temp; cc = tempp; } } } } } for (i=0; i<n; i++) { if (flag[i] == 1) printf("Target%d:NO:ONE OF US\n", (i+1)); if (flag[i] == 2) printf("Target%d:NO:AWAY\n", (i+1)); if (flag[i] == 3) printf("Target%d:NO:%.4lf\n", (i+1), ss[i]); if (flag[i] == 4) { if ( (i == aa) || (i == bb) || (i == cc) ) printf("Target%d:YES\n", (i+1)); else printf("Target%d:NO:NEXT TIME\n", (i+1)); } } } |
Double click to view unformatted code.