标签:
#include <iostream> #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <stack> #include <vector> #include <algorithm> using namespace std; #define N 2100 #define met(a,b) (memset(a,b,sizeof(a))) int a[N]; int dp[N]; int main() { int n; while(scanf("%d", &n), n) { int i, j, m, ans; met(a, 0); met(dp, 0); for(i=0; i<n; i++) scanf("%d", &a[i]); scanf("%d", &m); sort(a, a+n); for(i=0; i<n-1; i++) for(j=m-5; j>=a[i]; j--) dp[j] = max(dp[j], dp[j-a[i]]+a[i]); if(m>=5) ans = m-(dp[m-5]+a[n-1]); else ans = m; printf("%d\n", ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/YY56/p/5537274.html