Pagini recente » Cod sursa (job #1611847) | Cod sursa (job #2194534) | Cod sursa (job #2486030) | Cod sursa (job #1818229) | Cod sursa (job #302499)
Cod sursa(job #302499)
#include<stdio.h>
#include<stdlib.h>
#define IN "energii.in","r",stdin
#define OUT "energii.out","w",stdout
#define INF 20000000
struct pct{
int e , c ;
};
int N , S ;
pct V[1005];
int A[5006];
int main()
{
freopen(IN);
freopen(OUT);
scanf("%d%d",&N,&S);
for(int i = 1 ; i <= S ; ++i) A[i] = INF;
for(int i = 1 ; i <= N ; ++i) scanf("%d%d",&V[i].e,&V[i].c);
for(int i = 1 ; i <= N ; ++i)
{
if(A[V[i].e] == 0 || A[V[i].e] > V[i].c) A[V[i].e] = V[i].c;
for(int p = 1 ; p <= V[i].e ; ++p)
if(A[p] > V[i].c) A[p] = V[i].c;
for(int j = 1 ; j <= S - V[i].e ; ++j)
if(A[j])
if(A[j + V[i].e] > A[j] + V[i].c || A[V[i].e + j] == 0) A[V[i].e + j] = A[j] + V[i].c;
}
printf("%d\n",A[S]);
return 0;
}