Cod sursa(job #869157)

Utilizator XeBluePodaru Mihai XeBlue Data 1 februarie 2013 00:24:42
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
int a[1002],b[1002],v[20001];
ifstream in("energii.in");
ofstream out("energii.out");
int main()
{
	long n, i, j, w, x;
    in >> n >> w;
    for (i=1;i<=n;i++)
        in >> a[i] >> b[i];
    v[0]=1;
    x=1 << 30;
    for (i=1;i<=n;i++)
    {
        for (j=w;j>=0;j--)
            if (v[j]!=0)
            {
                if (v[a[i]+j]==0)
                    v[a[i]+j]=v[j]+b[i];
                else 
					v[a[i]+j]=min(v[a[i]+j],v[j]+b[i]);
                if ((a[i]+j>=w) && (v[a[i]+j]<x))
                    x=v[a[i]+j];
            }
    }
    if (x==(1 << 30))
        out << -1;
    else 
		out << x-1;
	in.close();
	out.close();
	return 0;
}