Pagini recente » Statistici Fremen (fremen) | Rating Husanu Diana Maria (diana.husanu) | Cod sursa (job #3179963) | Cod sursa (job #2155592) | Cod sursa (job #3187941)
/*#include<bits/stdc++.h>
using namespace std;
ifstream in("zen.in");
ofstream out("zen.out");
int t[10001], t1[10001], n, m,wh;
int dp[1001][1001];
int dp1[2][10001];
int now[10001], prev[10001],sh[10001];
int rec(int n,int wh) {
if (n <= 0) {
if (t[n] <= wh) return t1[n]; else
return 0;
}
else {
int take = 0;
if (wh - t[n] >= 0) {
take = rec(n - 1, wh - t[n]) + t1[n];
}
int nottake = rec(n - 1, wh);
return max(take, nottake);
}
}
int main() {
in >> n >> wh;
for (int i = 0; i < n; i++) in >> t[i];
for (int i = 0; i < n; i++) in >> t1[i];
//cout << rec(n, wh) << '\n';
for (int i = t[0]; i <= wh; i++) dp1[0][i] = t1[0];
for(int i=1;i<n;i++)
for (int j = 0; j <= wh; j++) {
int take = INT_MIN, nottake = dp1[(i-1)% 2][j];
if (j >= t[i ])
take = dp1[(i - 1) % 2 ][j - t[i]]+t1[i];
dp1[i % 2 ][j] = max(take, nottake);
}
cout << dp1[(n - 1) % 2 ][wh];
*/
/*
in >> n >> wh;
for (int i = 0; i < n; i++) in >> t[i];
for (int i = 0; i < n; i++) in >> t1[i];
cout << rec(n, wh) << '\n';
for (int i = t[0]; i <= wh; i++) dp[0][i] = t1[0];
for (int i = 1; i < n; i++)
for (int j = 0; j <= wh; j++) {
int take = INT_MIN, nottake = dp[i - 1][j];
if (j >= t[i])
take = dp[i - 1][j - t[i]] + t1[i];
dp[i][j] = max(take, nottake);
}
cout << dp[n - 1][wh];
// knapsack 0/1
*/
//}