求助
查看原帖
求助
836012
Hezelin0331楼主2024/1/26 16:14

第十个点咋过!!!!!!

#include<bits/stdc++.h>
using namespace std;
long long n,k,d;
long long a[1100],b[1100];long long sum=0;
void dfs(long long qs,long long cs){
	if(cs==k){
		long long ans=0;
		for(int i=0;i<=k+1;i++){
			ans+=b[i];
		}
		if(ans%d==0){
			sum=max(sum,ans);
		}
		return ;
	}
	for(int i=cs+1;i<=n-cs;i++){
		b[cs+1]=a[i];
		dfs(i,cs+1);
		b[cs+1]=0;
	}
	return;
}
int main(){
	cin>>n>>k>>d;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+n+1);
	dfs(0,0);
	if(sum==0){
		cout<<-1;
		return 0;
	}
	cout<<sum;
	return 0;
}

2024/1/26 16:14
加载中...