Cod sursa(job #1052051)

Utilizator geniuanduOncescu Andreea geniuandu Data 10 decembrie 2013 20:34:05
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<cstdio>
using namespace std;
struct andreea{
    int e,c;
};
andreea v[5001];
int i,g,w,j,s,min;
int su[10001];
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d %d",&g,&w);
    for(i=1;i<=g;i++)
        scanf("%d %d",&v[i].e,&v[i].c);
    for(i=1;i<=g;i++)
    {
        if(su[v[i].e]==0)
            su[v[i].e]=v[i].c;
        else
            if(su[v[i].e]<v[i].c)
                su[v[i].e]=v[i].c;
        for(j=1;j<=10001;j++)
            if(su[j]!=0)
            {
                s=v[i].e+j;
                if(su[s]>v[i].c+su[j])
                    su[s]=v[i].c+su[j];
            }
            else
                su[v[i].e+j]=v[i].c;
    }
    min=su[w];
    /*if(su[w]!=0)
        printf("%d\n",su[w]);*/

        for(i=w+1;i<=10001;i++)
            if(su[i]!=0&&min>su[i])
            {
                min=su[i];
                //printf("%d\n",su[i]);
                //break;
            }
        printf("%d\n",min);
    return 0;
}