Pagini recente » Cod sursa (job #1808157) | Cod sursa (job #1438760) | Cod sursa (job #210850) | Cod sursa (job #1283357) | Cod sursa (job #1635667)
#include <fstream>
#include <algorithm>
using namespace std;
int D[2][5003], E[1010], C[1010],G ,W,sum;
bool u=0;
ifstream cin("energii.in");
ofstream cout("energii.out");
int main(){
cin >> G >> W;
for (int i = 1; i <= G; i++){
cin >> E[i] >> C[i];
sum += E[i];
}
for (int i = 1; i <= G; i++,u = !u)
for (int j = 1; j <= W; j++){
D[u][j] = D[!u][j];
if(j >= E[i]){
D[u][j] = max(D[!u][j],D[!u][j-E[i]]+C[i]);
}
}
if(sum < W) cout << -1;
else cout<<D[!u][W];
return 0;
}