Pagini recente » Cod sursa (job #2066751) | Cod sursa (job #1059189) | Cod sursa (job #1641638) | Cod sursa (job #894004) | Cod sursa (job #3225759)
#include <iostream>
#include <fstream>
#include <stdint.h>
#include <cctype>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
#include <cmath>
#include <set>
#include <queue>
using namespace std;
typedef long long ll;
#pragma warning(disable : 4996)
;
ifstream fin("energii.in");
ofstream fout("energii.out");
//rucsac discret
int p[5001], w[5001], n, g, dp[10001];
int main() {
for (int i = 1; i < 10001; i++)
dp[i] = 100000;
fin >> n >> g;
for (int i = 1; i <= n; i++)
fin >> p[i] >> w[i];
//dp este in functie de energia produsa iar costul treb sa fie minim
for(int i = 1; i <= n; i++)
for (int j = g - 1; j >= 0; j--) {
dp[j + p[i]] = min(dp[j + p[i]], dp[j] + w[i]);
}
int mini = 100000;
for (int i = g; i < 10001; i++)
mini = min(mini, dp[i]);
if (mini == 100000) fout << -1;
else {
fout << mini;
}
return 0;
}