Pagini recente » Cod sursa (job #2321366) | Diferente pentru home intre reviziile 754 si 753 | Diferente pentru home intre reviziile 367 si 368 | Diferente pentru home intre reviziile 220 si 221 | Cod sursa (job #1456040)
#include <fstream>
#define INF 200000000
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int E[1010],C[1010],D[5010],i,j,n,eNec,ver;
int temp;
int main()
{
fin>>n>>eNec;
for( i = 1 ; i <= n ; i++ )
{
fin>>E[ i ]>>C[ i ];
ver += E[ i ];
}
for( i = 1 ; i <= eNec ; i++ )
D[ i ] = INF;
if( ver < eNec )
{
fout<<-1;
return 0;
}
for( i = 1 ; i <= n ; i++ )
{
for( j = eNec ; j >= 0 ; j-- )
{
temp = min( eNec , j + E[ i ] );
if( D[ temp ] > D[ j ] + C[ i ] )
D[ temp ] = D[ j ] + C[ i ];
}
}
if( D[ eNec ] != INF )
fout<<D[ eNec ];
else
fout<<-1;
return 0;
}