Cod sursa(job #1333013)

Utilizator MirunaMMiruna Mitu MirunaM Data 2 februarie 2015 18:00:35
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
struct lalala{int e,c;};
lalala v[1005];
int s[8000000];
int main(){
    int cost,n,necesar,i,act,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&necesar);
for(i=1;i<=n;i++)
    scanf("%d%d",&v[i].e,&v[i].c);
act=necesar;
for(i=1;i<=n;i++){
    for(j=act;j>=1;j--)
        if(s[j]!=0&&( (s[j+v[i].e]>s[j]+v[i].c) || (s[j+v[i].e]==0) )){
            s[j+v[i].e]=s[j]+v[i].c;
            if(j+v[i].e>act)
                act=j+v[i].e;
        }
    if(s[v[i].e]==0||s[v[i].e]>v[i].c)
        s[v[i].e]=v[i].c;
    if(v[i].e>act)
        act=v[i].e;
    }
for(i=necesar,cost=100000000;i<=act;i++)
    if(s[i]<cost&&s[i]!=0)
        cost=s[i];
printf("%d",cost);
return 0;
}