Pagini recente » Cod sursa (job #739772) | Cod sursa (job #2964459) | Cod sursa (job #2660085) | Cod sursa (job #2113963) | Cod sursa (job #1435953)
#include <fstream>
#include <vector>
#include <utility>
using namespace std;
constexpr int inf = (1<<30);
void fa_trecere_o_data(vector<int>& v, const int g, const int e, const int c, int& rez){
const int min1 = max(g-e, 0);
for(int j = g-1; j >= min1; --j){
if(v[j] != inf){
rez = min(rez, v[j]+c); } }
for(int j = g-e-1; j >= 0; --j){
if(v[j] != inf){
v[j+e] = min(v[j+e], v[j]+c); } } }
int main(){
ifstream in("energii.in");
ofstream out("energii.out");
int n = 0, g = 0;
in >> n >> g;
vector<int> v(g, inf);
v[0] = 0;
int rez = inf;
for(int i = 0, e = 0, c = 0; i < n; ++i){
in >> e >> c;
fa_trecere_o_data(v, g, e, c, rez); }
out << (rez == inf ? -1 : rez);
return 0; }