Pagini recente » Cod sursa (job #2672003) | Cod sursa (job #182001) | Cod sursa (job #2027024) | Cod sursa (job #1701847) | Cod sursa (job #702575)
Cod sursa(job #702575)
#include<cstdio>
using namespace std;
FILE *f,*g;
int i,j,maxi,x,y,n,w,b[5001];
int main()
{f=fopen("energii.in","r");
g=fopen("energii.out","w");
fscanf(f,"%d%d",&n,&w);
b[0]=1;
maxi=0;
for(i=1;i<=n;++i)
{fscanf(f,"%d%d",&x,&y);
for(j=maxi;j>=0;--j)
if(j==0)
{if(b[x]>y||b[x]==0)
b[x]=y;
if(maxi<b[x])
maxi=b[x];
}
else
if(b[j]!=0&&j+x<=w)
{if(b[j+x]==0||b[j+x]>b[j]+y)
b[j+x]=b[j]+y;
if(b[j+x]>maxi)
maxi=b[j+x];
}}
if(b[w]==0)
fprintf(g,"-1\n");
else
fprintf(g,"%d\n",b[w]);
fclose(f);
fclose(g);
return 0;
}