Pagini recente » Cod sursa (job #2058753) | Cod sursa (job #1570453) | Cod sursa (job #701868) | Cod sursa (job #2104963) | Cod sursa (job #3204009)
#include <bits/stdc++.h>
using namespace std;
#define INFILE "energii.in"
#define OUTFILE "energii.out"
typedef long long ll;
struct Generator {
ll energy;
ll price;
};
const int ENERGY_MAX = 15e3 + 5;
const int INF = 1e9;
ll dp[ENERGY_MAX];
void solve(){
int n, target; cin >> n >> target;
vector<Generator> v(n);
for(int i = 0; i < n; ++i){
cin >> v[i].energy >> v[i].price;
}
dp[0] = 0;
for(int i = 1; i <= target; ++i) dp[i] = INF;
for(int i = 0; i < n; ++i){
for(int energy = target - 1; energy >= 0; --energy){
if(dp[energy] != INF){
int aux = energy + v[i].energy;
dp[aux] = min(dp[aux], dp[energy] + v[i].price);
}
}
}
cout << (dp[target] == INF ? -1 : dp[target]) << '\n';
}
int main(){
ios_base::sync_with_stdio(false);
freopen(INFILE, "r", stdin);
freopen(OUTFILE, "w", stdout);
cin.tie(0), cout.tie(0);
solve();
return 0;
}