Pagini recente » Cod sursa (job #244068) | Cod sursa (job #1633155) | Cod sursa (job #330751) | Cod sursa (job #873192) | Cod sursa (job #1722066)
#include <cstdio>
#include <algorithm>
#include <iostream>
#define INF 1000000000
using namespace std;
int d[10001];
int main()
{
FILE *fin=fopen ("energii.in","r");
FILE *fout=fopen ("energii.out","w");
int n,k,s=0,x,y,j,sol=INF;
fscanf (fin, "%d%d", &n, &k);
for (int i=1;i<=10000;i++)
d[i]=INF;
for (int i=1;i<=n;i++){
fscanf (fin,"%d%d",&x,&y);
s+=y;
for (j=min(s,10000);j>=x;j--){
if (d[j-x]!=0)
d[j]=min(d[j],d[j-x]+y);
else if (j==x)
d[j]=y;
if (j>=k)
sol=min(sol,d[j]);
}
}
if (k>s || d[k]==INF)
fprintf (fout,"-1");
else fprintf (fout,"%d",sol);
return 0;
}