Pagini recente » Cod sursa (job #2974834) | Cod sursa (job #3222124) | Cod sursa (job #810022) | Cod sursa (job #779590) | Cod sursa (job #4215)
Cod sursa(job #4215)
#include <cstdio>
using namespace std
#define N 20001
#define M 1001
int main()
{
int G,W,E[M],C[M],v[N]={0},c[N]={0},i,j,l,ult;
v[0]=-1;
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d", &G);
scanf("%d", &W);
for(i=1;i<=G;i++)
{
scanf("%d", &E[i]);
scanf("%d", &C[i]);
}
ult=0;
for(i=1;i<=G;i++)
for(j=ult;j>=0;j--)
{
if(v[j+E[i]]!=0 && c[j+E[i]]>C[i])
c[j+E[i]]=C[i];
if(v[j]!=0 && v[j+E[i]]==0)
{
v[j+E[i]]=E[i];
c[j+E[i]]=c[j]+C[i];
if(j+E[i]>ult)
ult=j+E[i];
}
if(ult>=W)
if(c[W])
{ printf("%d", c[w]); return 0;}
else
{
l=W;
while(!c[l])
l++;
printf("%d", c[l]);
return 0;
}
}
printf("%d", -1);
return 0;
}