Cod sursa(job #317444)

Utilizator mihaionlyMihai Jiplea mihaionly Data 23 mai 2009 17:19:45
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <string.h>
using namespace std;
#define dim 1001
ifstream f("energii.in");
ofstream g2("energii.out");
int e[dim],c[dim],w,g,cmax[10*dim];
bool uz[10001][dim];
void read()
 {
 f>>g>>w;
 for(int i=1;i<=g;i++)
  f>>e[i]>>c[i];
 }
void dinamic()
 {
 int i,j,k;
 memset(cmax,-1,sizeof(cmax));
 cmax[0]=0;
 for(k=1;k<=w;k++)
  {
  for(i=1;i<=g;i++)
   if(k-e[i]>=0&&(cmax[k-e[i]]!=-1)&&uz[k-e[i]][i]==0)
    {
    if((cmax[k]==-1&&cmax[k-e[i]]!=-1)||cmax[k]>cmax[k-e[i]]+c[i])
     {
     cmax[k]=cmax[k-e[i]]+c[i];
     for(j=1;j<=g;j++) uz[k][j]=uz[k-e[i]][j];
     uz[k][i]=1;
     }
    }
  }
  if(k==w&&cmax[k]==-1)
   w++;
 }
void show()
 {
 g2<<cmax[w];
 }
int main()
 {
 read();
 dinamic();
 show();
 return 0;
 }