2013年北京师范大学新生程序设计竞赛网络赛--I. nonodog

I. nonodog

Time Limit: 1000ms
Case Time Limit: 1000ms
Memory Limit: 65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Submit  Status  PID: 34068
Font Size:  +   -

众所周知,nonopanda是不禁冻的,当附近冷到一定程度的时候就会冻成nonodog…所以他每天都宅在家里烤火…但是很郁闷的是他还是个吃货…所以每天都要冒着严寒出去吃饭…经过一番权衡,他决定从明天(第1天)开始叫外卖……每天晚上8点外卖都会被准时的送到nonopanda家门口,nonopanda会冒着冻成狗的风险打开门,收下外卖,然后关上门边吃外卖边烤火……

为了方便表示,我们将nonopanda所在的区域抽象为一个二维平面。已知nonopanda的家住在(0,0)点,他所在的区域有N个冷空气团,在第k天的晚上8:00,第i个冷空气团所在的位置为(x­i+vxi*k, yi+vyi*k)。记ri表示nonopanda打开门时第i个冷空气团到他家的距离,nonopanda感受到的第i个冷空气团的寒冷程度为Ci/ri2,他感受到的总寒冷程度为所有冷空气团的寒冷程度的总和,当他感受到的总寒冷程度超过T时他就会冻成狗,问nonopanda第一次被冻成狗是在第几天。

Input

输入的第一行为两个正整数N,T,接下来N行每行五个整数xi,yi,vxi,vyi,Ci。1≤N, T, Ci≤1000,-1000≤xi,yi,vxi,vyi≤1000。

Output

如果nonopanda永远不会冻成狗,则输出"Nono/Stay Panda";否则输出一个正整数表示nonopanda在叫外卖后第一次被冻成狗是在第几天。

Sample Input

2 5
-10 0 1 0 100
0 8 0 -1 80

Sample Output

3
Submit  Status  PID: 34068
#include <stdio.h>
int main()
{
    int i , k , n , t , a[1002][5];
    double now ;
    scanf("%d %d", &n, &t);
    for(i = 1 ; i <= n ; i++)
    {
        scanf("%d %d %d %d %d", &a[i][0], &a[i][1] , &a[i][2] , &a[i][3] , &a[i][4]);

    }
    for(k = 1 ; ; k++)
    {
        now = 0 ;
        for(i = 1 ; i <= n ; i++)
        {
            now += ( a[i][4] *1.0 / ( (a[i][0] + a[i][2]*k)*(a[i][0] + a[i][2]*k) + (a[i][1]+a[i][3]*k)*(a[i][1]+a[i][3]*k) ) );
        }
        if(now > t)
        {
            printf("%d\n", k);
            break;
        }
        if(k > 2000)
        {
            printf("Nono/Stay Panda\n");
            break;
        }
    }
    return 0;
}

你可能感兴趣的:(2013年北京师范大学新生程序设计竞赛网络赛--I. nonodog)