Cod sursa(job #2112389)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 23 ianuarie 2018 13:40:58
Problema Energii Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <cstring>
#include <algorithm>


using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, w, i, e,aux,c,j;
int d[5002];
pair<int, int> v[5002];

int main()
{
    fin>>n>>w;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].first>>v[i].second;
    }
    sort(v+1, v+n+1);
    for(i=1;i<=n;i++)
    {
        c=v[i].second;
        e=v[i].first;
        for(j=w;j>=1;j--)
        {
            if(d[j]!=0)
            {
                aux=j+e;
                if(aux>w)
                    aux=w;
                if(d[aux]!=0)
                    d[aux]=min(d[aux], d[j]+c);
                else
                    d[aux]=d[j]+c;
            }
        }
        if(e>w)
            e=w;
        if(d[e]==0)
            d[e]=c;
    }
    fout<<d[w];
    return 0;
}