Cod sursa(job #1453485)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 23 iunie 2015 17:49:03
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

const int Dim = 100100;
const int INF = 100000;

inline int Min(int A,int B)
{
    return (A < B) ? A : B;
}

int G,W,dp[Dim],Sol,Cmin = INF;

int main()
{
    fin >> G;
    fin >> W;

    int E,C;
    fill(dp,dp + Dim,INF);

     while (G--)
     {
         fin >> E >> C;
         if (E > W) continue;

         for (int j = Dim;j >= E;j--)
         {
            dp[j] = Min(dp[j],dp[j-E] + C);
            if (j >= W && dp[j] < Cmin)
                Sol = j,Cmin = dp[j];
         }

         dp[E] = Min(dp[E],C);
         if (E >= W && dp[E] < Cmin)
            Sol = E,Cmin = dp[E];
     }

     fout << Cmin;

    return 0;
}