排队接水

简介: 排队接水

排队接水

n个人一起排队接水,第i个人需要bii的时间来接水。

1 <= n <= 1000

0 <= bii <= 1000

同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。

完成接水的人会立刻消失,不会继续等待。

你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。

Input

第一行一个整数n

接下来n行,每行一个整数表示bii

Output

一行一个整数,表示所有人等待时间的总和的最小值

Sample Input

3

1

2

3

Sample Output

10

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int n, t, i, j;
    int a[10010];
    scanf("%d", &n);
    memset(a,0,sizeof(a));
    for(i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for(i = 0; i < n - 1; i++)
    {
        for(j = 0; j < n - 1 - i; j++)
        {
            if(a[j] > a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
    int sum = 0;
    for(i = 0; i < n; i++)
    {
        sum = sum + (n - i) * a[i];
    }
    printf("%d\n", sum);
    return 0;
}


相关文章
|
6月前
|
算法 调度
3.处理机调度与死锁
3.处理机调度与死锁
|
11月前
|
人工智能 图形学
UnityAI——排队过窄洞
UnityAI——排队过窄洞
UnityAI——排队过窄洞
|
6月前
|
Linux
4.4、 Linux进程排队
4.4、 Linux进程排队
63 0
|
Java 调度
深入理解线程与并发
深入理解线程与并发
1319:【例6.1】排队接水 2020-11-30
1319:【例6.1】排队接水 2020-11-30
|
存储 缓存 Java
JAVA多线程 | 实现用户任务排队 | 预估排队时长
JAVA多线程 | 实现用户任务排队 | 预估排队时长
405 0
JAVA多线程 | 实现用户任务排队 | 预估排队时长
|
调度
线程产生的虚假唤醒问题 原因和解决
多个线程并发争抢一个资源会产生线程虚假唤醒问题
127 0
银行排队问题之单队列多窗口服务
银行排队问题之单队列多窗口服务
317 0
银行排队问题之单队列多窗口服务
|
C++
201703-2 学生排队
201703-2 学生排队
59 0
201703-2 学生排队
|
Java 自动驾驶 小程序
线程池内的线程如果全部忙,提交一个新的任务,会发生什么?队列全部塞满了之后,还是忙,再提交会发生什么?
线程池内的线程如果全部忙,提交一个新的任务,会发生什么?队列全部塞满了之后,还是忙,再提交会发生什么?
线程池内的线程如果全部忙,提交一个新的任务,会发生什么?队列全部塞满了之后,还是忙,再提交会发生什么?