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)
        {
            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.


Back to problem 12