Tiempos de código ejecutados en un bucle anidado para Java

Recientemente estoy leyendo el libro llamadoAlgoritmos por Robert Sedgewick. Me encontré con un trozo de código mientras leía "Análisis de algoritmos". El código es el siguiente:

public static int count(int a[]) {
    int N = a.length;
    int cnt = 0;
    for (int i = 0; i < N; i++) {

        for (int j = i + 1; j < N; j++) {
            for (int k = j + 1; k < N; k++) {
                if (a[i] + a[j] + a[k] == 0) {  //here 
                    cnt++;
                }
            }
        }
    } 
    return cnt
}

Lo que quiero saber es cuántas veces de laif-estadio dentro delfor-loop sido ejecutado. La respuesta proporcionada por el libro esN(N-1)(N-2)/6. Pero no sé por qué, ¿podría alguien explicar?

Respuestas a la pregunta(3)

Su respuesta a la pregunta