Pagini recente » Cod sursa (job #2980472) | Cod sursa (job #38592) | Cod sursa (job #124334) | Cod sursa (job #820362) | Cod sursa (job #2130962)
#include <stdio.h>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
FILE *f,*g;
int a[1002][5002];
struct elem
{
int e,c;
}v[1002];
/*bool criteriu (elem p, elem q)
{
if(p.e!=q.e)
return (p.e<q.e);
else
if(p.c!=q.c)
return (p.c<q.c);
}*/
int main()
{
int n,E,i,j;
f=fopen("energii.in","r");
g=fopen("energii.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&E);
for(i=1;i<=n;i++)
fscanf(f,"%d %d",&v[i].e,&v[i].c);
/*for(i=0;i<=n;i++)
for(j=0;j<=E;j++)
a[i][j]=999999999;*/
for(i=1;i<=n;i++)
{
for(j=1;j<=E;j++)
{
if(v[i].e>=j)
{
if(v[i].c+a[i-1][v[i].e-j]<a[i-1][j]||a[i-1][j]==0)
a[i][j]=v[i].c+a[i-1][v[i].e-j];
else
a[i][j]=a[i-1][j];
}
}
}
if(a[n][E]!=999999999)
fprintf(g,"%d",a[n][E]);
else
fprintf(g,"-1");
fclose(f);
fclose(g);
return 0;
}