Pagini recente » Cod sursa (job #1698268) | Cod sursa (job #3170434) | Cod sursa (job #2146204) | Cod sursa (job #2297697) | Cod sursa (job #1666164)
#include <cstdio>
using namespace std;
FILE *f=freopen("energii.in","r",stdin);
char buff[100000];
int pos;
inline void read(int &nr)
{while(buff[pos]<'0' || buff[pos]>'9') if(++pos==100000) fread(buff, 1, 100000, stdin), pos = 0;
nr = 0;
while('0' <= buff[pos] && buff[pos] <= '9')
{
nr = nr * 10 + buff[pos] - '0';
if(++pos == 100000) fread(buff, 1, 100000, stdin), pos = 0;
}
}
int n,k,a[1001],c[1001],b[10001],i,j;
int main()
{ fread(buff,1,100000,stdin);
read(n);read(k);
for(i=1;i<=n;i++) read(a[i]),read(c[i]);
for(i=1;i<=k;i++) b[i]=999999;
for(i=1;i<=n;i++)
{
for(j=k;j-a[i]>=0;j--) if(b[j-a[i]]+c[i]<b[j]) b[j]=b[j-a[i]]+c[i];
for(j=1;j<a[i];j++) if(c[i]<b[j]) b[j]=c[i];
}
freopen("perm2.out","w",stdout);
if(b[k]==999999) printf("-1");
else printf("%d",b[k]);
}