Cod sursa(job #2027246)

Utilizator Garen456Paun Tudor Garen456 Data 25 septembrie 2017 20:21:38
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

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

int G,W;
struct generator
 {
     int p,c;
 };
 generator a[1005];
 bool b[5005];
 int ct[5005];

int main()
{    fin>>G>>W;
   int i,j,mini=10000005;
   for(i=1;i<=G;++i)
    fin>>a[i].p>>a[i].c;

    b[0]=1;
    for(i=1;i<=G;++i)
     for(j=W-1;j>=0;--j)
        if(b[j])
            if(j+a[i].p>=W)
               mini=min(mini,ct[j] +a[i].c);
            else
                {
               if(b[j+a[i].p])
                ct[j+a[i].p]=min(ct[j+a[i].p],ct[j]+a[i].c );
                else
                {
                    b[j+a[i].p]=1;
                    ct[j+a[i].p]=ct[j]+a[i].c;
                }
            }
   if(mini!=10000005) fout<<mini;
    else fout<<-1;

    return 0;
}