Pagini recente » Cod sursa (job #725242) | Cod sursa (job #2091398) | Cod sursa (job #855026) | Cod sursa (job #2666072) | Cod sursa (job #1783981)
#include <fstream>
using namespace std;
int a[3][100001] , w[5010] , p[5010] , n , gg , k , j ;
void schimbare(){
for (int i = gg ; i >= 0 ; i--)
a[1][i] = a[2][i] ;
}
int main(){
ifstream fin("energii.in");
ofstream fout("energii.out");
fin >> n >> gg ;
for(int i = 0 ; i <= gg ; i++)
fin >> w[i] >> p[i] ;
for(int i = 0 ; i<= gg ; i++){
a[1][i] = 10010 ;
a[2][i] = 10010 ;
}
for(int i = 0 ; i < n ; i++){
for(int j = gg ; j>= 0 ; j--)
if(w[i] < j)
a[2][j] = min(a[1][j] , a[1][j-w[i]] + p[i]);
else a[2][j] = min(a[1][j] , p[i]);
schimbare();
}
if(a[1][gg] != 10010)
fout << a[1][gg];
else fout << "-1";
return 0;
}