Pagini recente » Cod sursa (job #714246) | Cod sursa (job #2274324) | Cod sursa (job #532811) | Cod sursa (job #2184183) | Cod sursa (job #604516)
Cod sursa(job #604516)
#include<stdio.h>
#define INF 30000
typedef struct gClass{
int pow;
int c;
bool used;
};
void scan(FILE *f, int G, gClass *gen){
int a, b;
for(int i = 0; i < G; i++){
fscanf(f, "%d %d", &a, &b);
gen -> pow =a ;
gen -> c = b;
gen++;
}
}
void setToINF(int *a){
for(int i = 0; i < 1000; i++)
*(a + i)=INF;
}
int compute(gClass *gen, int G, int W){
int cost=0, a[1000], b[1000];
bool bas[1000][1000];
setToINF(a);
gClass *x;
a[0]=0;
for(int i=1; i<=W; i++){
for(int j=0; j<G; j++){
x=gen+j;
if(x->used!=false && x->pow<=i && (a[i-x->pow]+x->c)<a[i] && bas[j][i-x->pow]!=false){
a[i]=a[i-x->pow]+x->c;
bas[j][i]=false;
}
}
}
return a[W];
}
int main(){
FILE *f, *g;
f=fopen("energii.in", "r");
g=fopen("energii.out", "w");
int G, W, p;
gClass gen[1000];
fscanf(f, "%d %d", &G, &W);
scan(f, G, gen);
p=compute(gen, G, W);
fprintf(g, "%d", p);
return 0;
}