Cod sursa(job #1375827)

Utilizator EmplopiStefan Nitu Emplopi Data 5 martie 2015 14:37:57
Problema Energii Scor 35
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>

int energ[10000001];

int main(){
    FILE *fin, *fout;
    int n, w, i, nre, nrc, min, j, max;
    fin=fopen("energii.in", "r");
    fout=fopen("energii.out", "w");
    fscanf(fin, "%d%d", &n, &w);
    max=0;
    for(i=0;i<n;i++){
        fscanf(fin, "%d%d", &nre, &nrc);
        if(max<nre)
            max=nre;
        for(j=max;j>=0;j--)
            if(energ[j]>0)
                if(energ[j+nre]==0 || energ[j+nre]>energ[j]+nrc){
                    if(max<j+nre)
                        max=j+nre;
                    energ[j+nre]=energ[j]+nrc;
                }
        energ[nre]=nrc;
    }
    min=100000000;
    for(i=w;i<max;i++)
        if(min>energ[i] && energ[i]!=0)
            min=energ[i];
    fprintf(fout, "%d", min);
    fclose(fin);
    fclose(fout);

    return 0;
}