Pagini recente » Cod sursa (job #3172878) | Cod sursa (job #425442) | Cod sursa (job #678536)
Cod sursa(job #678536)
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int W,G,C[1002],E[1002],cost[1002][5002];
int const maxim=32000000;
void cit(){
int i;
fin>>G>>W;
for(i=1;i<=G;i++){
fin>>E[i]>>C[i];
if(E[i]>W) E[i]=W;
}
for(i=1;i<=W;i++) cost[0][i]=maxim;
}
void calc(){
int i,j;
for(i=1;i<=G;i++)
for(j=1;j<=W;j++){
if(E[i]<=j){
if(cost[i-1][j-E[i]] + C[i] < cost[i-1][j])
cost[i][j]=cost[i-1][j-E[i]] + C[i];
else cost[i][j]=cost[i-1][j];
if(cost[i-1][j-E[i]]==maxim) cost[i][j]=C[i];
}
else cost[i][j]=cost[i-1][j];
}
}
int main(){
cit();
calc();
if(cost[G][W] != maxim) fout<<cost[G][W]<<endl;
else fout<<-1;
return 0;
}