传送门
这道贪心挺裸的
显然动作的价值越大,它就应该间隔更长的时间来完成两次
因此贪心就好了
code:
#pragma GCC optimize(3)//玄学优化
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
int n,k;
scanf("%d%d",&n,&k);
int c[k+5],d[k+5];
long long int ans=0;
for(int i=0;i<k;i++)scanf("%d",&c[i]);//输入价值
sort(c,c+k);//排序
int l=0,r=n;//左右位置
for(int i=k-1;i>=0;i--){
d[l]=d[r]=c[i];//把当前最大的价值放在数组两端
ans=ans+c[i]*(r-l-1);//答案修改
++l;--r;//左右位置向里移
if(l>=r)break;//两个位置重合
}
printf("%lld",ans);//输出
return 0;//结束
}