Cod sursa(job #1416554)

Utilizator nnnmmmcioltan alex nnnmmm Data 8 aprilie 2015 13:54:36
Problema Energii Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
#include<algorithm>
int v[20001];
int main()
{
 freopen("energii.in","r",stdin);
 freopen("energii.out","w",stdout);
 int n,en;
 scanf("%d %d",&n,&en);
 for(int i=1;i<=n;i++)
     {
      int energie,cost;
      scanf("%d %d ",&energie,&cost);
      for(int j=5000;j>=1;j--)
          {
           if(v[j]!=0)
              {
               if(j+energie<=5000)
                  {
                   if(v[j+energie]==0)
                      v[j+energie]=v[j]+cost;
                   else
                      v[j+energie]=std::min(v[j+energie],v[j]+cost);
                  }
              }
          }
      if(v[energie]==0)
         v[energie]=cost;
      else
         v[energie]=std::min(v[energie],cost);
     }
 int min=10000001;
 for(int i=en;i<=5000;i++)
     {
      if(v[i]<min && v[i]!=0)
         min=v[i];
     }
 if(min==10000001)
    printf("-1");
 else
    printf("%d",min);
return 0;
}