10分求助,多个点re
查看原帖
10分求助,多个点re
1100140
Ryoo楼主2024/7/14 08:14
#include <bits/stdc++.h>
using namespace std;
int w[105],f[105][1005];
int main() {
	int n,begl,maxl;
	scanf("%d%d%d", &n,&begl,&maxl);
	for(int i = 1; i <= n; i++) scanf("%d", &w[i]);
	f[0][begl] = 1;
	for(int i = 1; i <= n; i++) {
		for(int j = maxl; j >= 0; j--) {
			if(j-w[i] >= 0 && f[i-1][j] == 1) f[i][j-w[i]] = 1;
			if(j + w[i] <= maxl && f[i-1][j] == 1) f[i][j+w[i]] = 1;
		}
	}
	for(int i = maxl; i >= 0; i++) {
		if(f[n][i] == 1) {
			printf("%d", i);
			return 0;
		}
		
	}
	printf("-1");
	return 0;
}
2024/7/14 08:14
加载中...