Pagini recente » Cod sursa (job #1718911) | Cod sursa (job #1515641) | Cod sursa (job #2522105) | Cod sursa (job #1116837) | Cod sursa (job #1813160)
#include <cstdio>
using namespace std;
FILE *f, *g;
int n, k, d[5009], mn = 2000000000;
void solve()
{
f = fopen("energii.in", "r");
int c, gr, i, j, mx = 0;
d[0] = 1;
fscanf(f, "%d%d", &n, &k);
for(i = 1; i <= n; i ++)
{
fscanf(f, "%d%d", &c, &gr);
for(j = mx; j >= 0; j --)
{
if(d[j] != 0)
{
if(j + c >= k)
{
if(d[j] + gr < mn)
mn = d[j] + gr;
}
else
if(d[j] + gr < d[j + c] || d[j + c] == 0)
d[j + c] = d[j] + gr;
}
}
mx += c;
if(mx > k - 1)
mx = k - 1;
}
fclose(f);
}
void printFile()
{
g = fopen("energii.out", "w");
if(mn == 2000000000)
mn = 0;
fprintf(g, "%d\n", mn - 1);
fclose(g);
}
int main()
{
solve();
printFile();
return 0;
}