Cod sursa(job #2294211)

Utilizator mihaimodiMihai Modi mihaimodi Data 2 decembrie 2018 01:27:06
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <climits>
using namespace std;

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

int p[1005],e[1005];
int a[1005][10005];
int n,cnt,i,j,k,Max;

int main()
{
    fin>>n>>cnt;
    for(i=1;i<=n;i++)
        for(j=1;j<=cnt;j++)
            a[i][j]=INT_MAX;
    for(i=1;i<=n;i++)
    {
        fin>>e[i]>>p[i];
        a[1][p[i]]=e[i];
    }

    for(i=2;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=2*cnt-e[j];k>=1;k--)
                if(a[i-1][k]!=INT_MAX)
                    a[i][k+p[j]]=min(a[i-1][k]+p[j],a[i][k+e[j]]);

    for(i=1;i<=2*cnt;i++)
        if(a[n][i]!=INT_MAX)
            Max=max(a[n][i],Max);

    if(Max>=cnt)
        fout<<Max;
    else
        fout<<-1;


    return 0;

}