Cod sursa(job #1197596)

Utilizator RaulTofanTofan Raul RaulTofan Data 12 iunie 2014 21:07:03
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
 
ifstream fin("energii.in");
ofstream fout("energii.out");
#define MAX 100005
#define INF 0x3f3f3f3f
#define MAXc 1005
 
int g, w, x, y;
int d[MAX];
int en[MAXc],c[MAXc];
 
void Read();
void Knapsack();
void Write();
int main()
{
    Read();
    Knapsack();
 
 
}
 
void Knapsack()
{
 
    for(int i=1;i<=w;i++)
        d[i]=INF;
    for(int i=1;i<=g;i++)
        for(int j=w;j>=1;j--)
            if(en[i]>j)
                d[j]=min(c[i],d[j]);
            else
                d[j]=min(d[j-en[i]]+c[i],d[j]);
    if( d[w] != INF )
        fout << d[w];
    else
        fout << "-1";
}
 
void Read()
{
    fin >> g >> w;
    for ( int i = 1; i <= g; ++i )
        fin >> en[i] >> c[i];
}