Stavo provando a risolvere questo problema e non molti casi sono sbagliati, vi allego il programma, riuscireste a darmi qualche indizio di dove sbaglio oppure casi di input con relativi output giusti?
#include <stdio.h>
#include <assert.h>
// constraints
#define MAXN 10000
// input data
int N, i;
int T[MAXN];
int main() {
int r1=0,r2=0;
assert(1 == scanf("%d", &N));
for(i=0; i<N; i++)
assert(1 == scanf("%d", &T[i]));
for(i=1;i<N;i++){
if(T[i]<T[i-1]-1 && (T[i]+i<r1 || r1==0)){
// la parte prima dell && controlla se rifare l'ordine il giorno dopo fa arrivare prima il pacco
// quindi se c'è una differenza di più di un giorno, la parte dopo controlla
// se un risultato è migliore di quello che già si ha
r2++;
r1=i+T[i];
}
}
printf("%d %d\n", r1,r2); // print the result
return 0;
}