Cod sursa(job #2112755)

Utilizator lupulescu2001Lupulescu Vlad lupulescu2001 Data 23 ianuarie 2018 20:13:38
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<algorithm>

using namespace std;

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

pair <int, int> V[1003],D[5003];
int W,G,Sol=10000000;

int main()
{
    fin>>G>>W;
    for(int i=1;i<=G;i++)
        fin>>V[i].first>>V[i].second;
    sort(V+1,V+1+G);
    D[0].first=1;
    for(int i=1;i<=G;i++)
    {
        for(int j=W;j>=0;j--)
            if(D[j].first==1)
        {
            if(j+V[i].first>=W)
                Sol=min(Sol,D[j].second+V[i].second);
            else
            {
                D[j+V[i].first].first=1;
                if(D[j+V[i].first].second==0)
                    D[j+V[i].first].second=D[j].second+V[i].second;
                else
                    D[j+V[i].first].second=max(V[i].second+D[j].second,D[j+V[i].first].second);
            }
        }
    }
    fout<<Sol<<'\n';
}