Cod sursa(job #1344067)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 16 februarie 2015 12:08:27
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
int s[15010];
struct date{int e,c;};
date v[1010];
int main(){
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int i,j,n,m,max=0,min=10001*1001;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].e,&v[i].c);
    for(i=1;i<=n;i++)
        for(j=m;j>=1;j--){
            if(s[j]!=0){
                if(s[j+v[i].e]==0||s[j+v[i].e]>s[j]+v[i].c)
                    s[j+v[i].e]=s[j]+v[i].c;
                if(s[j+v[i].e]>max)
                    max=s[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(s[v[i].e]>max)
                max=s[v[i].e];
        }
    i=m;
    while(i<=max){
        if(s[i]!=0&&s[i]<min)
            min=s[i];
        i++;
    }
    printf("%d",min);
return 0;
}