Pagini recente » Cod sursa (job #3273722) | Cod sursa (job #1111354) | Cod sursa (job #631541) | Cod sursa (job #923980) | Cod sursa (job #2936384)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int maxx = 5003;
const int INF = 2e9;
long long cost[maxx], e[maxx], c[maxx];
int n, necesar;
void read()
{
fin >> n >> necesar;
for (int i = 1; i <= n; ++i)
{
fin >> e[i] >> c[i];
}
}
void fn()
{
for (int i = 1; i <= necesar; ++i) cost[i] = INF;
for (int i = 1; i <= n; ++i)
for (int j = necesar; j >= 0; --j)
if (cost[j] != INF)
{
int j_nou = j + c[i];
j_nou = min(j_nou, necesar); //in cazul in care trece peste 'necesar';
if (cost[j_nou] > cost[j] + c[i])
cost[j_nou] = cost[j] + c[i];
}
if (cost[necesar] != INF)
fout << cost[necesar];
else
fout << -1;
}
int main()
{
read();
fn();
}