Cod sursa(job #1330097)

Utilizator GooggaIoana Iaru Googga Data 30 ianuarie 2015 13:12:20
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include<algorithm>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int main() {
    int n,g,maxim,cmin,cost[10005];
    bool viz[10005]={0};
   in>>n>>g;
  viz[0]=1;
    maxim=0;
    for(int i=1;i<=10004;i++)
                cost[i]=10001;

   for(int i=1;i<=n;i++)
    {
       int x,y;
        in>>x>>y;
        int ok=0;
        for(int j=maxim;j>=0;j--)
           if(viz[j]==1)
            {
                if(ok==0)
                {
                  maxim=max(maxim,j+x);
                    ok=1;
                }
           viz[j+x]=1;
              cost[j+x]=min(cost[j+x],cost[j]+y);
            }
    }
    cmin=1002001;
    for(int i=g;i<=maxim;i++)
    {
        if(cmin>cost[i])
            cmin=cost[i];
    }
    if(cmin==1002001)
        out<<-1;
    else
    out<<cmin;
    in.close();
    out.close();
    return 0;
}