Cod sursa(job #1542564)

Utilizator cristinamateiCristina Matei cristinamatei Data 5 decembrie 2015 14:47:21
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("energii.in");
ofstream out("energii.out");

struct elem
{
    int eg, cg;
};
const int inf = 100000;
elem a[1002];
int n, w;
int p[5002];

int main()
{
    int i, j;
    in >> n >> w;
    for ( i = 1; i <= n; i++ )
        in >> a[i].eg >> a[i].cg;
    for ( i = 1; i <= w; i++ )
        p[i] = inf;
    p[0] = 0;
    for ( i = 1; i <= n; i++ )
        for ( j = w+a[i].eg-1; j >= a[i].eg; j-- )
            if ( p[j-a[i].eg] != inf )
            {
                if ( j >= w )
                    if ( p[j-a[i].eg] + a[i].cg < p[w] )
                        p[w] = p[j-a[i].eg] + a[i].cg;
                    else;
                else
                    if ( p[j-a[i].eg ] +a[i].cg < p[j] )
                        p[j] = p[j-a[i].eg ] +a[i].cg;
            }
    out << p[w];
    return 0;
}