Pagini recente » Cod sursa (job #33941) | Cod sursa (job #365301) | Cod sursa (job #1641629) | Cod sursa (job #2621131) | Cod sursa (job #1281912)
#include <fstream>
#define NMAX 1001
#define WMAX 10001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int v[NMAX];
int w[NMAX];
int m[NMAX][WMAX];
int W,k;
int main(){
fin>>k>>W;
for(int i=1; i<=k; i++)
fin>>v[i]>>w[i];
int a;
for(int i=1; i<=k; i++)
a+=v[i];
if(a<W){
fout<<-1;
return 0;
}
for(int j=0; j<=W; j++)
m[0][j] = 0;
for(int i=1; i<=k; i++)
for(int j=0; j<=W+1; j++)
if(w[i]<j)
{
if(m[i-1][j] > m[i-1][j-w[i]] + v[i])
m[i][j] = m[i-1][j];
else
m[i][j] = m[i-1][j-w[i]] + v[i];
}
fout<<m[k][W+1];
return 0;
}