看看怎么做,是什么类型的

在黑暗深处,心怡女巫有一座魔法城堡,传说这个城堡会带来无尽的财富,因此人们成群结队的闯入城堡。但这个城堡有一种魔力,每次只允许进入一个闯入者,并且会将闯入者随机传送到城堡的某一层,城堡一楼和顶楼各有一个出口,假设上一层楼和下一层楼的时间相同。现在闯入者需要用最短的时间达到上出口或下出口,否则将会受到心怡女巫的诅咒。

现在聪明的你请帮忙计算这群闯入者所需要花费的总时间
输入描述:

第一行有两个整数n, m,t,1≤n,m≤1000,1≤t≤10)

n为闯入者人数,m为城堡层数,t为上或下一层楼所需要的时间。

 

第二行有nn个整数分别表示每个闯入者被传送到的楼层。

输出描述:
输出占一行,表示这群闯入者出去所需要花费的总时间。
5 5 2
1 2 3 4 5

遍历n个人,计算层数距离上面近还是下面近,找距离最近的,然后乘以时间,把所有人的时间累加就和即可。代码如下:

#include <stdio.h>

int main()
{
    int n,m,t;
    int i,tmp,f;
    int sum = 0;
    scanf("%d %d %d",&n,&m,&t);
    for(i=0;i<n;i++)
    {
        scanf("%d",&f); //读取进入的层数
        if((f-1) < (m-f) )
            sum += (f-1)*t;
        else
            sum += (m-f)*t;
    }
    printf("%d",sum);//输出总时间
    return 0;
}