Cod sursa(job #206065)

Utilizator MciprianMMciprianM MciprianM Data 4 septembrie 2008 14:05:58
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
int viz[1000];
int valo[30009];
int main(){
  int G,W,i,E[1000],C[1000],maxim,imax,j,val,ok;
  ifstream f("energii.in");
  f>>G>>W;
  for(i=0;i<G;i++)
    f>>E[i]>>C[i];
  f.close();
  for(i=1;i<30009;i++){
    maxim=0;imax=-1;
    ok=0;
    for(j=0;j<G;j++)
      if(!viz[j]){
        ok=1;
        if(C[j]<=i){
          val=E[j]+valo[i-C[j]];
          if(val>maxim){
            maxim=val;
            imax=j;
          }
        }
        if(!ok){
          ofstream g("energii.out");
          g<<"-1\n";
          g.close();
          return 0;
        }
    }
    valo[i]=maxim;
    if(maxim) viz[imax]=1;
    if(valo[i]>=W){
      ofstream g("energii.out");
      g<<i<<'\n';
      g.close();
      return 0;
    }
  }
  return 0;
}