Tempos de código foram executados em um loop for aninhado em Java

Eu estou lendo recentemente o livro chamadoAlgoritmos por Robert Sedgewick. Eu me deparei com um pedaço de código ao ler "Análise de Algoritmos". O código é o seguinte:

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
}

O que eu quero saber é quantas vezes oif-exatenção dentro dofor-loop foi executado. A resposta fornecida pelo livro éN(N-1)(N-2)/6. Mas eu não sei porque, alguém poderia explicar.

questionAnswers(3)

yourAnswerToTheQuestion