Pagini recente » Cod sursa (job #234089) | Cod sursa (job #2328298) | Cod sursa (job #1143744) | Cod sursa (job #1539009) | Cod sursa (job #1376031)
#include<cstdio>
#include<algorithm>
using namespace std;
struct energii
{
int energie,cost;
};
energii v[1002];
bool sortare(energii a,energii b)
{
if(a.energie==b.energie)
return a.cost<b.cost;
return a.energie<b.energie;
}
int vec[10000001];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int G,W,contor,k,i,min,s;
scanf("%d%d",&G,&W);
for(contor=1;contor<=G;contor++)
{
scanf("%d%d",&v[contor].energie,&v[contor].cost);
}
sort(v+1,v+G+1,sortare);
for(k=1;k<=G;k++)
{
min=-1;
for(i=10001;i>=1;i--)
{
if(vec[i]!=0)
{
min=vec[i]+v[k].cost;
if(vec[i+v[k].energie]==0)
vec[i+v[k].energie]=min;
if(min<vec[i+v[k].energie])
{
min=s;
vec[i+v[k].energie]=min;
}
}
}
if(vec[v[k].energie]==0)
vec[v[k].energie]=v[k].cost;
if(vec[v[k].energie]>v[k].cost)
vec[v[k].energie]=v[k].cost;
}
min=200000000;
for(i=W;i<=10000001;i++)
if(min>vec[i]&&vec[i]!=0)
{
min=vec[i];
}
printf("%d",min);
return 0;
}