Cod sursa(job #806554)

Utilizator StefanLacheStefan Lache StefanLache Data 2 noiembrie 2012 23:43:20
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#include <algorithm>
#include<stdlib.h>
#include<string.h>
using namespace std;
int G, W;
int E[1001], C[1001];
int D[1001][5002];
int main()
{
    FILE *f=fopen("energii.in","rt");
    FILE *g=fopen("energii.out","wt");
    fscanf(f,"%d%d", &G, &W);
    for(int i = 1; i <= G; ++i)
        fscanf(f,"%d%d", &E[i], &C[i]);
    memset(D,sizeof(D),10001);
    for(int i = 1; i <= G; ++i)
        for(int j = 0; j <= W; ++j)
            {
                    D[i][j] = D[i-1][j];
                    if(E[i] <= j)
                        D[i][j] = min(D[i][j], D[i-1][j - E[i]] + C[i]);
                        else D[i][j]=min(D[i][j],C[i]);
            }
            if(D[G][W] != 10001)
    fprintf(g,"%d\n", D[G][W]);
    else fprintf(g,"-1");
    return 0;

    }