这道题,先把章节数sort升序排序,最小的乘以最初的时间,然后第二小的乘以最初的时间减一,以此类推。当时间为1时,以后的时间都用1。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define SIZE 100005
int chapters[SIZE];
int n,x;
long long sum;
int main()
{
while(scanf("%d %d",&n,&x) != EOF)
{
for(int i = 0; i < n; i++)
scanf("%d",&chapters[i]);
sort(chapters,chapters + n);
sum = 0;
for(int i = 0; i < n; i++)
{
if(x > 1)
sum += (long long) chapters[i] * (x--);
else
sum += chapters[i];
}
printf("%I64d\n",sum);
}
return 0;
}
排序算法应用与时间乘法计算
本文介绍了一种利用排序算法对章节进行升序排序,并通过与初始时间相乘来计算总时间的方法。详细解释了算法实现过程,并提供了代码示例。
598

被折叠的 条评论
为什么被折叠?



