Pagini recente » Cod sursa (job #409123) | Cod sursa (job #262660) | Cod sursa (job #26407) | Cod sursa (job #1113973) | Cod sursa (job #1213608)
#include <fstream>
#include <iostream>
#include <cstring>
#include <vector>
#define infi 9999999
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
const int enermax=10000;
const int wmax=5001;
long s[enermax+wmax+5];
int main()
{
int n,w;
fi>>n>>w;
int x,y;
long max;
memset(s,infi,sizeof(s));
s[0]=0;
long suma=0;
for (int i=1;i<=n;++i)
{
fi>>x>>y;
suma+=x;
for (int j=w;j>=0;--j)
if (s[j]!=infi)
if (s[j+x]==infi ||(s[j+x]>s[j]+y))
s[j+x]=s[j]+y;
}
max=infi;
for (int i=w;i<w+enermax;++i)
if (max>s[i]) max=s[i];
if (suma<w)
max=-1;
fo<<max<<"\n";
}