烈焰风暴

来源:互联网 发布:七氟烷mac值是多少 编辑:程序博客网 时间:2024/04/25 20:28

Problem Description

烈焰风暴是游戏「魔兽争霸Ⅲ」中的一项技能,血魔法师召唤出一道灼热的火墙,给一定范围内的 6 个单位造成伤害,并在一定时间内对这些单位造成持续伤害 (快捷键 "F"),如图所示:

3774

这里只是给大家科普一下,与本题的设定不同。

现在,一些小兵排列整齐以一条线的方式,通过传送门进攻你的大本营。

为了简化问题,我们假设烈焰风暴的作用范围是一个半径为 R 的圆(包括圆上的点),可以秒杀作用范围内的数量不限的小兵。所有小兵都在一条直线上,其位置以坐标的形式给出,并且给出烈焰风暴的作用半径以及释放一次技能所需要的魔法值 m,请你求出至少需要多少魔法才能杀死所有小兵。

Input

输入数据有多组(数据组数不超过 200),到 EOF 结束。

对于每组数据:

  • 第 1 行先给出小兵数量 n (1 <= n <= 1000),半径 R (1 <= R <= 20) 和魔法值 m (1 <= m <= 100)。
  • 第 2 行输入 n 个小兵的坐标 x (0 <= x <= 10000)。

输入数据均为整数,一行内的整数两两之间用空格隔开。

Output

在输出的最开始一行先输出 ”Good Luck” (无论几组数据它只在开头输出一次)。

对于每组数据,先输出 ”Case #i: ” (i 从 1 开始计数),表示当前是第几组数据,之后输出至少需要的魔法。

在所有数据都处理完后,输出一行 ”QAQ”。

上述输出均不包含引号。

Example Input

5 2 41 2 3 4 55 2 41 2 4 6 5

Example Output

Good LuckCase #1: 4Case #2: 8QAQ
 
#include<stdio.h>void sort (int a[],int n){    int i,j,tmp;    for(i=0;i<n-1;i++)    {        for(j=0;j<n-1-i;j++)        {            if(a[j]>a[j+1])            {                tmp=a[j];                a[j]=a[j+1];                a[j+1]=tmp;            }        }    }}int main(){    int n,r,m;    int i,j;    int a[1001]={0};    int sum;    int k;    int count=0;    printf("Good Luck\n");    while(scanf("%d%d%d",&n,&r,&m)!=EOF)    {        memset(a,0,sizeof(a));        sum=1;        count++;        for(i=0;i<n;i++)        {            scanf("%d",&a[i]);        }        sort(a,n);        k=a[0]+2*r;        for(i=0;i<n;i++)        {            if(a[i]>k)            {                sum++;                k=a[i]+2*r;            }        }        printf("Case #%d: %d\n",count,sum*m);    }    printf("QAQ\n");    return 0;}
0 0
原创粉丝点击