Cod sursa(job #206078)

Utilizator MciprianMMciprianM MciprianM Data 4 septembrie 2008 14:54:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>  
using namespace std;  
int viz[1000],cost[10009];  
int main(){  
  int G, W, i, E[1000], C[1000],j,co,imin,min,ok;  
  ifstream f("energii.in");  
  f>>G>>W;  
  for(i=0;i<G;i++)  
    f>>E[i]>>C[i];  
  f.close();  
  for(i=0;i<10009;i++)  
    cost[i]=10000099;  
  min=10000099;  
  for(i=0;i<10009;i++){  
    ok=0;  
    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];  
    viz[imin]=1;
    if(!ok){  
      if(min==10000099){  
        ofstream g("energii.out");  
        g<<"-1\n";  
        g.close();  
      }  
      else{  
        ofstream g("energii.out");  
        g<<min<<'\n';  
        g.close();  
      }  
    }  
   // if(min>cost[i])  min=cost[i];  
  }  
  ofstream g("energii.out");  
  g<<min<<'\n';  
  g.close();  
  return 0;  
}