Cod sursa(job #1968178)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 17 aprilie 2017 15:32:24
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream fi ("energii.in");
ofstream fo ("energii.out");
int i,j,n,maxi,pt,g[5003],p[5003],lcur[10004],lpre[10004],mini;
int main()
{
    fi>>n>>pt;
    for (i=1;i<=n;i++)
      {fi>>p[i]>>g[i];maxi=max(maxi,g[i]);}
    mini=100000;
    for (i=1;i<=n;i++)
      {
        for (j=0;j<=pt+maxi;j++)
        {
//          a[i][j]=a[i-1][j];
//          if (g[i]<=j)
//            a[i][j]=max(a[i][j],a[i-1][j-g[i]]+p[i]);
           lcur[j]=lpre[j];
           if (g[i]<=j)
          {
            lcur[j]=max(lpre[j],lpre[j-g[i]]+p[i]);
          }
          if (lcur[j]>=pt and j<mini) mini=j;
        }
          for (j=0;j<=pt+maxi;j++) {lpre[j]=lcur[j];lcur[j]=0;}
        }
//    for (j=1;j<=gt;j++) maxi=max(maxi,lpre[j]);
//    fo<<maxi;
      if (mini==100000) mini=-1;
      fo<<mini;
    return 0;
}