Cod sursa(job #870751)

Utilizator XeBluePodaru Mihai XeBlue Data 3 februarie 2013 21:19:28
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
#define inf 10002
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int n,k,a[1001],c[1001],b[10001];
int main()
{
    int i,j;
    in >> n >> k;
    for(i=1;i<=n;i++) 
		in >> a[i] >> c[i];
    for(i=1;i<=k;i++)
		b[i]=inf;
    for(i=1;i<=n;i++)
    {
		for(j=k;j-a[i]>=0;j--)  
			if(b[j-a[i]]+c[i]<b[j])
				b[j]=b[j-a[i]]+c[i];
		for(j=1;j<a[i];j++)
			if(c[i]<b[j]) 
				b[j]=c[i];
    }
    if(b[k]==inf) 
		out << -1;
    else 
		out<<b[k];
	in.close();
	out.close();
	return 0;
}