Cod sursa(job #1542567)

Utilizator edim98Eduard Constantinescu edim98 Data 5 decembrie 2015 14:49:09
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <climits>
using namespace std;

int cost[5001], e[5001], c[5001], g, w;

const int INF = INT_MAX;

FILE *fin = fopen("energii.in", "r");
FILE *fout = fopen("energii.out", "w");

int main()
{
    fscanf(fin, "%d%d", &g, &w);
    for(int i = 1; i <= g; i++)
        fscanf(fin, "%d%d", &e[i], &c[i]);

    int i, j;
    for(j = 1; j <= w; j++)
        cost[j] = INF;
    cost[0] = 0;
    for(i = 1; i <= h; i++)
        for(j = w + e[i] - 1; j >= e[i]; j--)
        {
            if(cost[j-e[i]] != INF)
            {
                if(j >= w)
                    if(cost[j-e[i]] + e[i] < cost[w])
                        cost[w] = cost[j-e[i]] + c[i];
                    else;
                else if(cost[j-e[i]] + c[i] < cost[j])
                    cost[j] = cost[j-e[i]] + c[i];
            }
        }
    fprintf(fout, "%d", cost[w]);
    return 0;
}