五金网站方案,c 做网站看什么书,网站固定头部,厦门做网站哪家公司好蛋糕店
题目大意#xff1a;
有n个人#xff0c;让他们排队#xff0c;每个人都有一个愤怒值#xff0c;总值为每个人的愤怒值乘上#xff08;他在队列中的位置-1#xff09;加在一起
原题#xff1a;
题目描述
最近小G新开了一家蛋糕店。开业第一天#xff0c;一…蛋糕店
题目大意
有n个人让他们排队每个人都有一个愤怒值总值为每个人的愤怒值乘上他在队列中的位置-1加在一起
原题
题目描述
最近小G新开了一家蛋糕店。开业第一天一共来个n位顾客。由于小G非常懒他每次只会接待一位顾客。每个顾客都想尽快的买到蛋糕所以没有第一个买到蛋糕的顾客都会有一个愤怒值。最终排在第i个位置的顾客x的愤怒值为i*a[x]。小G想要所有顾客的愤怒值之和最小。求最小的愤怒值之和。
输入
第一行为一个整数n表示顾客数。 第二行输入n个整数a[1]…a[n] 含义见题面
输出
一行一个整数ans表示最小的愤怒值之和。
输入样例
5
8 5 8 4 6输出样例
51说明
【样例解释】
Ans8162534451
【数据规模和约定】
对于30%的数据1 ≤ n ≤ 10。 对于60%的数据1 ≤ n ≤ 1000。 对于100%的数据1 ≤ n ≤ 1000000。
解题思路
先排序让愤怒值大的人先排然后直接计算
#includecstdio
#includeiostream
#includecstring
#includealgorithm
using namespace std;
int n;
long long s,ans,a[1000005];
char x;
long long read()//快读
{s0;xgetchar();while (x0||x9) xgetchar();while (x0x9){ss*10x-48;xgetchar();}return s;
}
int main()
{scanf(%d,n);for (int i1;in;i)a[i]read();sort(a1,a1n);//排序for (long long in-1,j1;i0;--i,j)ansj*a[i];//计算printf(%lld,ans);
}