Pagini recente » Cod sursa (job #2235812) | Cod sursa (job #2036813) | Cod sursa (job #676565) | Cod sursa (job #1484700) | Cod sursa (job #1328347)
#include <cstdio>
#define maxim 30000
using namespace std;
FILE *f=fopen("energii.in","r");
FILE *g=fopen("energii.out","w");
int n,w;
int v[maxim+5],minim=1<<30;
int main()
{ int i,j,a,b;
fscanf(f,"%d %d",&n,&w);
for (i=1;i<=30000;i++) v[i]=1<<29;
while (n!=0){
fscanf(f,"%d %d",&a,&b);
for (i=5000;i>=0;i--)
if (v[i]+b<v[i+a])
v[i+a]=v[i]+b;
n--;
}
for (i=maxim;i>=w;i--) if (v[i]<minim) minim=v[i];
if (minim!=(1<<29))
fprintf(g,"%d\n",minim);
else fprintf(g,"-1\n");
return 0;
}