Pagini recente » Cod sursa (job #454244) | Cod sursa (job #1992390) | Cod sursa (job #2755898) | Cod sursa (job #2670012) | Cod sursa (job #463729)
Cod sursa(job #463729)
#include<stdio.h>
#include<stdlib.h>
int main(){
int n, h, u, *h_gut, *g_gut, i, aux = 0, recolta = 0;
FILE *f;
f = fopen("gutui.in", "r");
//Citire copac
fscanf(f,"%d %d %d", &n, &h, &u);
h_gut = (int*)malloc(n * sizeof(int));
g_gut = (int*)malloc(n * sizeof(int));
for (i = 0; i < n ; i++)
fscanf(f,"%d %d", &h_gut[i], &g_gut[i]);
fclose(f);
//Culesul
while ((h > 0)&&(aux != -1)){
//Calculam care gutuie trebuie culeasa
aux = -1;
for (i = 0; i < n; i++){
if (h_gut[i] > h)
g_gut[i] = 0;
else
if (g_gut[i] != 0)
if (aux == -1)
aux = i;
else
if (h_gut[i] / u >= h_gut[aux] / u)
if (h_gut[i] / u > h_gut[aux] / u)
aux = i;
else
if (g_gut[i] > g_gut[aux])
aux = i;
}
//Culegem
if (aux != -1){
recolta = recolta + g_gut[aux];
g_gut[aux] = 0;
}
h = h - u;
}
//Afisare
f = fopen("gutui.out", "w");
fprintf(f,"%d", recolta);
fclose(f);
free(h_gut);
free(g_gut);
return 0;
}