Cod sursa(job #91758)

Utilizator algoritmarOvidiu Andrei algoritmar Data 13 octombrie 2007 14:13:18
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

#define N_MAX 1001
#define W_MAX 5001
#define FIN "energii.in"
#define FOUT "energii.out"

int g,w,cmin = W_MAX,a[N_MAX],b[N_MAX],s,c,i,j;

int main()
{
	ifstream fin(FIN);
	ofstream fout(FOUT);
	fin >> g >> w;
	for(i = 0; i < g; ++i){
		fin >> a[i] >> b[i];
	}
	if(a[0] >= w)
		cmin = b[0];
	for(i = 0; i < g; ++i,s = c = 0)
	{	
		s+=a[i], c+=b[i];
		for(j = i+1; j < g; ++j)
		{			
			if( a[j] >= w ){
				if(b[j] < cmin)
					cmin = b[j];
			}
			else{ 
				c += b[j];s += a[j];
				if(s >= w){
					if(c < cmin)
						cmin = c,s = c = 0;
				}
				else
					if(i == g-2 && j == g-1 && cmin == W_MAX)
						cmin = -1;
			}
		}
	}	
	fout << cmin;
	return 0;
}