Pagini recente » Clasament lsp_11_12 | Cod sursa (job #2220790) | Cod sursa (job #2604933) | Cod sursa (job #3033506) | Cod sursa (job #1778023)
#include <iostream>
#include <stdio.h>
using namespace std;
int Target[1001]; //1 -> 1000
int Load, Goal;
int Cap, Cost; //query
int main() {
freopen ("energii.in", "r", stdin);
freopen ("energii.out", "w", stdout);
cin >> Load >> Goal;
for (int i = 1; i <= Load; i++) {
cin >> Cap >> Cost;
if (Cap >= Goal)
Cap = Goal;
for (int i = Goal - 1; i >= Goal - Cap; i--)
if (Target[i] != 0 && (Target[i] + Cost < Target[Goal] || Target[Goal] == 0))
Target[Goal] = Target[i] + Cost;
for (int i = Goal - Cap - 1; i >= 1; i--)
if (Target[i] != 0 && (Target[i] + Cost < Target[i + Cap] || Target[i + Cap] == 0))
Target[i + Cap] = Target[i] + Cost;
if (Target[Cap] == 0 || Target[Cap] > Cost)
Target[Cap] = Cost;
}
if (Target[Goal] == 0)
cout << -1;
else
cout << Target[Goal];
}