Cod sursa(job #2415194)

Utilizator robertrRotaru Stefan Robert robertr Data 25 aprilie 2019 16:49:57
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,e,d[20005];
bool dp[20005];
struct generator
{
    int cost,energie;
}v[1005];
inline bool comp(generator a,generator b)
{
    return a.cost<b.cost;
}
int main()
{
    f>>n>>e;
    for(int i=1;i<=n;i++)
        f>>v[i].energie>>v[i].cost;
    sort(v+1,v+n+1,comp);
    int maxi=0;
    dp[0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=maxi;j>=0;--j)
            if(dp[j]&&!dp[v[i].energie+j])
        {
            dp[v[i].energie+j]=1;
            d[v[i].energie+j]=d[j]+v[i].cost;
        }
    }
    int p=e;
    while(!dp[p]) p++;
    g<<d[p]<<'\n';
    return 0;
}