Pagini recente » Cod sursa (job #1223373) | Cod sursa (job #1935651) | Cod sursa (job #2669915) | Cod sursa (job #3271274) | Cod sursa (job #1416710)
#include<cstdio>
#define INF 2000000000
using namespace std;
int v[10000001];
int main()
{
FILE *in, *out;
in=fopen("energii.in", "r");
out=fopen("energii.out", "w");
int n, s, i, g, p, j;
fscanf(in, "%d%d", &n, &s);
v[0]=0;
for(i=1; i<=10000000; i++)
v[i]=INF;
int smax=0, min=INF;
for(i=1; i<=n; i++)
{
fscanf(in, "%d%d", &g, &p);
for(j=smax; j>=0; j--)
if(v[j]&&v[j+g]>v[j]+p)
{
v[j+g]=v[j]+p;
if(j+g>smax)
smax=j+g;
}
if(p<v[g])
{
v[g]=p;
if(smax<g)
smax=g;
}
}
for(i=smax; i>=g; i--)
if(v[i]<min)
min=v[i];
if(min==INF)
min=-1;
fprintf(out, "%d", min);
fclose(in);
fclose(out);
return 0;
}