30分求助
查看原帖
30分求助
713205
Mx_sky楼主2023/5/27 10:05
#include<bits/stdc++.h>
using namespace std;
int n,q,p[100003],dp[100003];
bool cxk(int x,int y) {return x>y;}
int main(){
	scanf("%d %d",&n,&q);
	q=100-q;
	for(int i=1;i<=n;i++) scanf("%d",&p[i]);
	sort(p+1,p+1+n,cxk);
	dp[0]=0;
	for(int i=1;i<=n;i++)
	{
		if(i<3) dp[i]+=(p[i]/100*q+dp[i-1]);
		else dp[i]=min(dp[i-1]+(p[i]/100*q),dp[i-3]+p[i-2]+p[i-1]);
	}
	printf("%d\n",dp[n]);
    return 0;
}
2023/5/27 10:05
加载中...