Pagini recente » Cod sursa (job #1786882) | Cod sursa (job #1079762) | Cod sursa (job #649062) | Cod sursa (job #82653) | Cod sursa (job #1923006)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct generator{
int p, w;
};
const int oo = 2000000000;
const int NMAX = 1005;
const int GMAX = 5005;
int N, G;
int sum;
int DP[NMAX][GMAX];
void Read(){
in >> N >> G;
for(int i = 0; i <= N; ++i){
for(int j = 1; j <= G; ++j)
DP[i][j] = oo;
}
}
void Solve(){
int p, w;
for(int i = 1; i <= N; ++i){
in >> p >> w;
sum += p;
generator gen = {p, w};
for(int j = 1; j <= G; ++j){
DP[i][j] = min(DP[i - 1][j], DP[i - 1][max(0, j - gen.p)] + gen.w);
}
}
}
void Print(){
if(sum < G)
out << -1 << "\n";
else
out << DP[N][G] << "\n";
}
int main(){
Read();
Solve();
Print();
return 0;
}