Cod sursa(job #1853259)

Utilizator minut1Baies Cosmin minut1 Data 21 ianuarie 2017 15:41:39
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

struct proiect{
  int e,c;
}v[1005];

int g,w,cost[10005];  //cost[j] = costul minim necesar obtinerii energiei j pt j < w
                      //cost[w] = costul minim necesar obtinerii energiei cel putin w
const int INF=10000000;
int maxi=0, mini=INF;

int main()
{

    cin >> g >> w;
    for(int i=1; i<=g; i++){
        cin >> v[i].e >> v[i].c;
        if(v[i].e > maxi)
            maxi=v[i].e;
    }
    for(int j=1; j<=w+10001; j++){
      cost[j]=INF;
    }
    for(int i=1; i<=g; i++)
        for(int j=w; j>=0; j--)
          if(cost[j]!=INF && cost[j]+v[i].c < cost[j+v[i].e])
              cost[j+v[i].e] = cost[j] + v[i].c;
    for(int i=w; i<=w + maxi; i++)
        if(cost[i] < mini)
          mini=cost[i];
    cout << mini;
    return 0;
}