View Code of Problem 12

#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, &lt);
	    //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) && (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.


Back to problem 12