Cod sursa(job #88511)

Utilizator eddieOlariu Eduard Iuliu eddie Data 2 octombrie 2007 19:12:10
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream.h>
ifstream f("energii.in");
ofstream g("energii.out");
int n,used[1001];
int x[1001];
int c[1001][2];
int y[1001][1];
int w, s;
long p;
long pmin;
void verificare()
 {
  if (pmin>p)
      pmin=p;
 }
void genperm(int k)
 {
  if (k==n+1)
     verificare();
   else
    if (s>=w)
       verificare();
      else
       {
	register int i;
	for (i=1;i<=n;i++)
	    if (!used[i])
	       {
		used[i]=1;
		x[k]=i;
		s+=c[i][1];
		p+=c[i][2];
		genperm(k+1);
		s-=c[i][1];
		p-=c[i][2];
		used[i]=0;
	       }
       }
 }
int main()
 {
  f>>n;
  f>>w;
  long h=0;
  pmin=1000000000;
  register int i;
  for (i=1;i<=n;i++)
      {
       f>>c[i][1];
       f>>c[i][2];
       h+=c[i][1];
      }
  if (h<w)
     g<<"-1";
   else
    {
     genperm(1);
     g<<pmin;
    }

  f.close();
  g.close();
  return 0;
 }