Pagini recente » Cod sursa (job #2756231) | Cod sursa (job #2234273) | Cod sursa (job #1462312) | Cod sursa (job #1012897) | Cod sursa (job #48030)
Cod sursa(job #48030)
#include <stdio.h>
short n, energii[1001], costuri[1001], energieNecesara;
long c[10000000];
FILE *fout = fopen("energii.out", "w");
void cit(){
short register i;
FILE *fin = fopen("energii.in", "r");
fscanf(fin, "%hi", &n);
fscanf(fin, "%hi", &energieNecesara);
for(i=1; i<=n; i++)
fscanf(fin, "%hi %hi", &energii[i], &costuri[i]);
fclose(fin);
}
void solve(){
long max = 0, i, j;
for(i=1; i<=n; i++){
for(j=max; j>=0; j--)
if(c[j]+costuri[i] < c[j+energii[i]] || c[j+energii[i]] == 0 || (j==0 && costuri[i]<c[energii[i]])){
c[j+energii[i]] = c[j]+costuri[i];
max = j+energii[i];
}
}
for(i=energieNecesara; i<=max; i++)
if(c[i]){
fprintf(fout, "%li", c[i]);
break;
}
}
int main(){
cit();
solve();
fclose(fout);
return 0;
}