Cod sursa(job #1107612)

Utilizator span7aRazvan span7a Data 13 februarie 2014 23:50:10
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int min(short a,short b)
{
	if(a<b)return a;
	else return b;
}
short C[1002][5002],se;
short Wp[1001],Cp[1001],G,W;
void solve()
{
	int i,j;
	if(se<W)
		g<<-1;
	else	
		{
			for(i=0;i<=G;i++)C[i][0]=10002;
		for(i=0;i<=W;i++)C[0][i]=10002;
		
		for(i=1;i<=G;i++)
			for(j=1;j<=W;j++)
				if (Wp[i]<j) 
					C[i][j]=min(Cp[i]+C[i-1][j-Wp[i]],C[i-1][j]);			
				 else C[i][j]=min(C[i-1][j],Cp[i]);
	g<<C[G][W];
	}
}
int main()
{
	f>>G>>W;
	for(int i=1;i<=G;i++)
	{	
		f>>Wp[i]>>Cp[i];
		se+=Wp[i];
	}
	solve();
	
	return 0;
	
}