Cod sursa(job #877013)

Utilizator priestnoobFMI - Dan Nema priestnoob Data 12 februarie 2013 14:43:59
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<vector>
#define INF 9999999
using namespace std;
int G,W;
vector<int> EG,CG;
vector<vector <int> >sol;

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&G,&W);
    EG.resize(G+1);
    CG.resize(G+1);
    sol.resize(G+1, vector<int>(W+1));
    for(int i=1;i<=G;i++)
        scanf("%d%d",&EG[i],&CG[i]);
    for(int i=0;i<=G;i++)
    for(int j=0;j<=W;j++)
        sol[i][j]=INF;
    for(int i=1;i<=G;i++)
    for(int j=1;j<=W;j++)
    {
            if(EG[i]<j)
                sol[i][j]=min(sol[i-1][j],sol[i-1][j-EG[i]]+CG[i]);
            else
                sol[i][j]=min(sol[i-1][j],CG[i]);
    }
    if(sol[G][W]==INF)
    printf("%d",-1);
    else printf("%d",sol[G][W]);
}