Pagini recente » Cod sursa (job #374173) | Cod sursa (job #1889092) | Istoria paginii noul-infoarena | Cod sursa (job #1904150) | Cod sursa (job #1478144)
#include <cstdio>
#include <algorithm>
#define IMAX 1000000000
#define LIM 10000
using namespace std;
int a[3][LIM+23],g,w,minim=IMAX;
int main()
{
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
for(int i=1;i<LIM;i++) a[1][i]=IMAX;
scanf("%d%d",&g,&w);
int eg,cg;
for(int i=1;i<=g;i++)
{
scanf("%d%d",&eg,&cg);
for(int j=0;j<LIM;j++) a[2][j]=a[1][j];
for(int j=0;j<LIM;j++)
{
if(j+eg<LIM)
{
a[2][j+eg]=min(a[2][j+eg],a[1][j]+cg);
}
if(j>=w) minim=min(minim,a[2][j]);
}
for(int j=0;j<LIM;j++) a[1][j]=a[2][j];
// for(int j=0;j<10;j++) printf("%d ",a[2][j]);
//printf("\n");
}
if(minim!=IMAX) printf("%d\n",minim);
else printf("-1\n");
}