Pagini recente » Cod sursa (job #394063) | Cod sursa (job #1968128) | Cod sursa (job #1110461) | Cod sursa (job #2337334) | Cod sursa (job #237601)
Cod sursa(job #237601)
#include<stdio.h>
#include <bitset>
#define MX 17000
#define inf 2000000000
using namespace std;
int sum[MX+1];
int n,S;
bitset <MX> Nr;
int minm=inf;
struct {
int x;
int y;
}a[MX];
void citire()
{
scanf("%d %d",&n,&S);
for(int i=1;i<=n;i++)
scanf("%d %d",&a[i].x,&a[i].y);
}
int minn(int a,int b)
{
if(a<b) return a;
else return b;
}
void solve()
{ for(int j=0;j<=MX;j++)
sum[j]=inf;
Nr[0]=1;
sum[0]=0;
for (int i=1;i<=n;i++)
for (int j=S;j>=0;j--)
if (Nr[j]==1)
{
sum[j+a[i].x]=minn(sum[j+a[i].x],sum[j]+a[i].y);
Nr[j+a[i].x]=1;
if (j+a[i].x>=S)
minm=minn(minm,sum[j+a[i].x]);
}
if (minm==inf)
printf("-1\n");
else
printf("%d\n",minm);
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
citire();
solve();
return 0;
}