《P17010 [GESP202606 五级] 排排坐》

题目描述

老师正在和小朋友们分糖果。

小朋友们先在自己的手上写一个数字,然后坐成一排。

老师分发糖果的规则是:每个小朋友获得自己以及左侧所有小朋友的手上数字之和个糖果。

现在小朋友们都已经在自己手上写上了数字。

请帮小朋友们安排合适的座位顺序,使得小朋友们分到的糖果总量最大,输出这个最大值。

输入格式

输入 2 行,

第一行为一个正整数 n,表示小朋友的个数;

第二行为 n 个正整数 a1​,a2​,⋯,an​,表示小朋友们手上的数字,整数之间以空格分隔。

输出格式

输出一个整数,表示小朋友们可能分到的最大糖果总数量。

输入输出样例

输入 #1复制

复制代码
5
7 5 8 9 3

输出 #1复制

复制代码
111

说明/提示

样例解释

小朋友安排座位后从左向右每人手上数字依次是:9,8,7,5,3。

这时可以得到最多的糖果:(9)+(9+8)+(9+8+7)+(9+8+7+5)+(9+8+7+5+3)=111。

数据范围

1≤n≤1000,1≤ai​≤1000。

代码实现:

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    sort(a.rbegin(), a.rend());
    long long ans = 0;
    int coeff = n;
    for (int num : a)
    {
        ans += 1LL * num * coeff;
        coeff--;
    }
    cout << ans << '\n';
    return 0;
}
相关推荐
en.en..12 小时前
C语言 标准输入 / 输出缓冲区
算法
吃好睡好便好14 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球14 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
靠沿15 小时前
贪心算法专题(二)
算法·贪心算法
猎头南楼16 小时前
具身智能模型部署方向的能力要求与技术栈梳理
人工智能·深度学习·算法
啥都想学点的研究生17 小时前
一篇文章讲清楚:线性回归问题的求解——正规方程法
算法·机器学习·线性回归
青少儿编程课堂17 小时前
树状数组精讲:逆序对计数与离散化(附双语言解法)
算法·树状数组·离散化·信息学奥赛·逆序对
血小板要健康17 小时前
网格 dfs 与 FloodFill:从岛屿、区域到搜索路径
笔记·算法·leetcode·深度优先
VALENIAN瓦伦尼安教学设备18 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
小小晓.18 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法