Cod sursa(job #1344071)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 16 februarie 2015 12:16:38
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 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,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(j+v[i].e>=m&&s[j+v[i].e]<min)
                    min=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(v[i].e>=m&&s[v[i].e]<min)
                min=s[v[i].e];
        }
    if(min==10001*1001)
        min=-1;
    printf("%d",min);
return 0;
}