Cod sursa(job #1805412)

Utilizator raulmuresanRaul Muresan raulmuresan Data 13 noiembrie 2016 19:07:31
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

int r[5002];

int main()  {
    FILE *fin = fopen("energii.in", "r");
    FILE *fout = fopen("energii.out", "w");
    int n, k, maxi, s = 0, x, c;

    fscanf(fin,"%d %d", &n, &k);
    r[0] = 1; maxi = INT_MAX;
    for (int i = 1; i <= n; ++i)
    {
        fscanf(fin,"%d %d", &x, &c);
        for (int j = k; j >= 0; j--)
            if (r[j] != 0)  {
                if (j + x >= k)  {
                    if (r[j] + c < maxi)
                        maxi = r[j] + c;
                }
                else if (r[j] + c < r[j + x] || r[j + x] == 0)
                    r[j + x] = r[j] + c;
            }
    }

    if (maxi == INT_MAX)
        maxi = 0;
    fprintf(fout,"%d\n", maxi - 1);
    return 0;
}