Pagini recente » Cod sursa (job #2472470) | Cod sursa (job #1074914) | Cod sursa (job #2297200) | Cod sursa (job #340058) | Cod sursa (job #2760068)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int N = 1000;
int n, u, e[N], c[N], ans, sC, dp[10 * N * N + 1], sE;
int main(){
f >> n >> u;
for(int i = 0; i < n; i++){
f >> e[i] >> c[i];
sC += c[i];
sE += e[i];
}
f.close();
if(sE >= u){
for(int j = 1; j <= sC; j++)
dp[j] = -1;
for(int i = 0; i < n; i++){
for(int j = sC - c[i]; j >= 0; j--){
if(dp[j] != -1)
dp[j + c[i]] = max(dp[j + c[i]], dp[j] + e[i]);
}
}
for(int j = 1; j <= sC; j++){
if(dp[j] >= u){
g << j;
break;
}
}
}else
g << -1;
g.close();
}