题目描述:
QAQ…
题目分析:
打了个表发现,一个动作只要确定了第一次做的时间,最后一次做的时间,中间做几次价值都没有影响,那么我们就把每个动作的价值排序,对于价值大的动作让他的时间间隔大就好了…
题目链接:
Ac 代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
int val[1010],n,k;
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++) scanf("%d",&val[i]);
std::sort(val+1,val+k+1);
int l=1,r=n,ans=0;
for(int i=k;i&&l<r;i--)
{
ans+=(r-l)*val[i];
l++,r--;
}
printf("%d\n",ans);
return 0;
}