Cod sursa(job #218268)

Utilizator allynaAlina S allyna Data 1 noiembrie 2008 13:18:07
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream.h>  
#include<iostream.h>
using namespace std;  
int viz[1000],cost[100000];  
int main()
{  
ifstream in("energii.in");  
  in>>g>>w;  
  for(i=0;i<g;i++)  
    in>>e[i]>>c[i];  
  in.close();  
  for(i=0;i<10009;i++)  
    cost[i]=99999;  
  min=99999;  
  for(i=0;i<99999;i++){  
    ok=0;  
	imin=-1;
    for(j=0;j<g;j++){  
      if(!viz[j]){  
        ok=1;  
        if(E[j]<=i){  
          co=cost[i-e[j]]+c[j];  
          if(co<cost[i]){  
            cost[i]=co;  
            imin=j;  
          }  
        }  
      }  
    }  
    if(cost[i]<min&&i>=W)  
      min=cost[i];  
    if(imin!=-1) viz[imin]=1;
    if(!ok){  
      if(min==10000099){  
        ofstream out("energii.out");  
        out<<"-1"<<endl;  
        
      }  
      else{  
        ofstream out("energii.out");  
        out<<min<<endl;  
        
      }  
    }  
   
  }  
 ;  
  out<<min<<endl;  
out.close();    
  return 0;  
}