50 分 , 玄关 求助
查看原帖
50 分 , 玄关 求助
1098953
M_Jun楼主2024/7/22 10:25

样例能过 ,却是 50 分
玄关求助


源码 :

#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>

#define INF 0x7fffffff
#define int long long 
#define re register
#define in inline
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 

using namespace std ;

int n ; 
int beginLevel , maxLevel , minLevel ; 
int c[55] ;

bool dp[55][1005] ;

signed main ( ) {
	ios ; 
	
	dp[1][beginLevel] = true ;
	cin >> n >> beginLevel >> maxLevel ;
	for(int i = 1 ; i <= n ; i ++) {
		cin >> c[i] ;
	}
	
	for(int i = 1 ; i <= n ; i ++) {
		for(int j = maxLevel ; j >= 0 ; j --) {
			if(dp[i - 1][j] and j + c[i] <= maxLevel) dp[i][j + c[i]] = true ;
			if(dp[i - 1][j] and j - c[i] >= minLevel) dp[i][j - c[i]] = true ;
		}
	}
	
	for(int i = maxLevel ; i >= 0 ; i --) {
		if(dp[n][i]) {
			cout << i << '\n' ;
			return 0 ; 
		}
	}
	cout << -1 << '\n' ;
	
	return 0;
}


烦请 DALAO 帮助 本蒟蒻 AC 一下

2024/7/22 10:25
加载中...