Cod sursa(job #354749)

Utilizator robigiirimias robert robigi Data 9 octombrie 2009 12:38:55
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

ifstream f ("energii.in");
ofstream g ("energii.out");

int n, gg, cant[2000], cost[2000];
int v[1001][1001];


void read()
{    f >> n >> gg;
     for (int i=0; i<n; i++)
         f >> cant[i] >> cost[i];
}

int min(int x, int y)
{   if (x>y) return x;
    else return y;
}

void functie()
{    for (int i=1; i<=gg; i++)
          for (int j=0; j<n; j++)
               if (cant[j]<i) v[i][j]=min(v[i][j-1], v[i-cant[i]][j]+cost[j]);
     int min=2000000001;
     for (int k=0; k<n; k++)
          if (v[gg][k]<min && v[gg][k]>=gg) min=v[gg][k];
     g << min;
}

void afis()
{    for (int i=1; i<=gg; i++)
     {   for (int j=0; j<n; j++)
             g << v[i][j] << " ";
         g << "\n";
     }
}    






int main()
{   read();
    functie();
//    afis();
    return 0;
}