Cod sursa(job #94660)

Utilizator eddieOlariu Eduard Iuliu eddie Data 24 octombrie 2007 16:18:33
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
int s[25001];
int main()
 {
  long n,w;
  long e;
  long c;
  freopen("energii.in","r",stdin);
  freopen("energii.out","w",stdout);
  long cmin=100000000;
  scanf("%ld %ld",&n,&w);
  long i;
  
  for (i=1;i<=n;i++)
	{
		scanf("%ld%ld",&e,&c);
		
		long j;
		
		for (j = w-1;j>=0;j--)
		{
			if( j!=0 && s[j] == 0) continue;
			if (( s[j+e] > c + s[j] )||( s[j+e]==0))
			{
				s[j+e] = c + s[j];
				if (( j+e >= w )&&( cmin > c +s[j]))
				{
					cmin = c+s[j];
					//s[w] = cmin;
				}
			}
			
		}
		
	}

  if (cmin == 100000000)
     printf("-1");
     else
     printf("%ld",cmin);
  fclose(stdout);
  return 0;
 }