Pagini recente » Cod sursa (job #1662020) | Cod sursa (job #960795) | Monitorul de evaluare | Borderou de evaluare (job #1558190) | Cod sursa (job #3348902)
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct nigger
{
int cost;
int nr;
};
nigger v[100001];
bool cmp(nigger a, nigger b)
{
if (a.cost == b.cost)
{
return a.nr < b.nr;
}
return a.cost < b.cost;
}
int dp[100001];
signed main()
{
ifstream cin("energii.in");
ofstream cout("energii.out");
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> v[i].nr >> v[i].cost;
}
sort(v + 1, v + n + 1, cmp);
for (int i = 1; i <= 5005; i++)
{
dp[i] = INT_MAX;
}
dp[0] = 0;
for (int i = 1; i <= n; i++)
{
for (int j = k - v[i].nr; j >= 0; j--)
{
dp[v[i].nr + j] = min(dp[v[i].nr + j], dp[j] + v[i].cost);
}
}
int minim = INT_MAX;
int ras = 0;
for (int i = k; i <= 5005; i++)
{
if (minim > dp[i])
{
minim = dp[i];
ras = i;
}
}
cout << minim;
return 0;
}