#include #include int N; int h[1001], c[1001]; int max = 0; int total = 0; void cerca(int start, int prewNum, int costo); int main (){ FILE *in, *out; int i, j; in = fopen("input.txt", "r"); if (in == NULL){ printf("Errore nella lettura del file\n"); return -1; } fscanf(in, "%d", &N); for(i = 0; i <= N; i++){ fscanf(in, "%d %d", &h[i], &c[i]); total += c[i]; } h[0] = 1000; c[0] = 0; cerca(0, h[0], 0); out = fopen("output.txt", "w"); fprintf(out, "%d", total-max); return 0; } void cerca(int start, int prewNum, int costo){ int i = 1; //printf("Sommo %d a %d\n", c[start], costo); costo += c[start]; if(costo > max) max = costo; while(start + i <= N && h[start+i] > h[start]){ i++; } if(start +i>= N+1) return; cerca(start+i, h[start], costo); //lancio 2 istanze: in una prendo il siccessivo cerca(start+i, prewNum, costo-c[start]); //nella seconda la salto }