Cod sursa(job #2023478)

Utilizator whitewolf3131Ursu Laurentiu Cristian whitewolf3131 Data 18 septembrie 2017 23:00:21
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>

using namespace std;
struct obiect{
    int pro, con;
};
obiect c[1002];
int sume[50002];
int main()
{
	FILE *in, *out;
	in = fopen("energii.in", "r");
	out = fopen("energii.out", "w");
	obiect ob;
	int g, w;
	fscanf(in, "%d%d", &g, &w);
	for(int i=0; i<g; i++){
        fscanf(in, "%d%d", &ob.pro, &ob.con);
        c[i]=ob;
	}
	for(int i=0; i<g; i++){
        for(int j=50001; j>=c[i].pro; j--){
            if((sume[j-c[i].pro]!=0 || j-c[i].pro==0) && (sume[j-c[i].pro]+c[i].con<sume[j] || sume[j]==0))
                sume[j]=sume[j-c[i].pro]+c[i].con;
        }
	}
	int mini=1000000;
	for(int i=w; i<=50001; i++){
        if(sume[i]!=0 && sume[i]<mini){
            mini=sume[i];
        }
	}
    fprintf(out, "%d", mini);
	return 0;
}