Cod sursa(job #1092473)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 27 ianuarie 2014 08:43:49
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream is("rucsac.in");
ofstream os("rucsac.out");

int S, n, x, y;
vector<int> a;

int main()
{
    is >> n >> S;
    a = vector<int>( S + 1, -1 );
    a[0] = 0;
    for ( int i = 1; i <= n; i++ )
    {
        is >> x >> y;
        for ( int j = S - x; j >= 0; j-- )
            if ( a[j] != -1 && a[j+x] < a[j] + y )
                a[j+x] = a[j] + y;
    }
    for ( int i = S; i >= 0; i++ )
        if ( a[i] != -1 )
        {
            os << a[i];
            break;
        }
    is.close();
    os.close();
    return 0;
}