Cod sursa(job #766994)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 12 iulie 2012 16:02:27
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
#define inf 2000000000
using namespace std;
int n,s,sol[5002],C[1002],G[1002],i,j,minn,poz;
char uz[5003][1003];
int main()
{
	ifstream f("energii.in");ofstream g("energii.out");
	f>>n>>s;
	for(i=1;i<=n;i++)
		f>>G[i]>>C[i];
	for(i=1;i<=s;i++)
	{
	   minn=inf;
		for(j=1;j<=n;j++)
		  if(G[j]<=i && sol[i-G[j]]+C[j]<minn && !uz[i-G[j]][j] && (sol[i-G[j]]!=0 || i==G[j]))
		  {
			minn=sol[i-G[j]]+C[j]; 
			poz=j;
		  }
		 sol[i]=minn;
		 uz[i][poz]='1';
	}
	if(sol[s]==inf)g<<"-1"; else 
	g<<sol[s]<<'\n';
	f.close();g.close();
return 0;}