Cod sursa(job #1090913)

Utilizator cristalCiurdarean Andrei cristal Data 23 ianuarie 2014 11:34:58
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;

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

int n, G, v[10001], g[10001],w;
bool c[10001];
int r[10001];

int main()
{
    is >> n >> G;
    for ( int i = 1; i <= n; i++ )
        is >> v[i] >> g[i], w += v[i];
        c[0] = true;
        r[0] = 0;
	for ( int i = 1; i <= n; ++i )
		for ( int j = G; j >= 0; --j )
		{
		    if ( c[j] )
		    {
                c[j + v[i]] = true;
                r[j + v[i]] = r[j] + g[i];
		    }
		}
    for ( int i = 2*G;i >= 0 ; i-- )
    {
        if ( c[i] && i >= G )
        {
            os << r[i];
            break;
        }
        if ( i > w )
        {
            os << "-1";
            break;
        }
    }
    is.close();
    os.close();
    return 0;
}