Cod sursa(job #1698718)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 5 mai 2016 09:54:03
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <cstdio>
using namespace std;

unsigned short n,w,g=100001;
unsigned short p[1005],c[1005];
unsigned short sol[100005];

int main()
{
    int i,j,mini=32000;
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&w);
    for(i=1;i<=n;i++)
        scanf("%d%d",&p[i],&c[i]);
    for(i=1;i<=n;i++)
    {
        for(j=g-c[i];j>=0;j--)
            {
               // cout<<c[i]<<' '<<p[i]<<'\n';
                if(sol[j]+p[i]>sol[j+c[i]] ) sol[j+c[i]]=sol[j]+p[i];
                if(sol[j+c[i]]>=w && mini>j+c[i]) mini=j+c[i];
            }
        //for(j=1;j<=15;j++) cout<<sol[j]<<' '; cout<<'\n';
    }
    if(mini==32000) printf("-1");
    else printf("%d\n",mini);
    fclose(stdin);
    fclose(stdout);
    return 0;
}