给定n个技能,每个技能能打掉对手ai的血,你一共有m次发招的机会,你不能连续使用某一个技能超过k次。问你最多能打掉对手多少血。
输入
第一行3个数n,m,k,(2<=n<=2*105,1<=m,k<=109)
第二行n个数a[1…n],(1<=a[i]<=10^9)
输出
一个数,表示最大值。
输入样例
6 9 2
1 3 3 7 4 2
输出样例
54
使用最大伤害,用次大伤害做缓冲
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
long long a[200010];
int main()
{
ios::sync_with_stdio(false);
long long n,m,k;
long long sum=0;
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
cout<<(m/(k+1))*a[n-1]+((m/(k+1))*k+(m%(k+1)))*a[n];
return 0;
}