void output(int i, int j, int k){ int LBL = (lcp[i] > lcp[j+1]) ? lcp[i] : lcp[j+1]; int SIL = lcp[k]; if(i==j) printf("trivial <%d,%d>, tf=1\n", i, j); else if(LBL < SIL) printf("nontrival <%d, %d>, rep=%d, tf=%d\n", i, j, k, j-i+1); } int print_LDIs(int i, int k){ int j = k; output(k,k,0); /* trivial intervals */ while(lcp[k] <= lcp[j+1] && j+1 < N) j = print_LDIs(k, j+1); output(i,j,k); /* non-trivial intervals */ return j; }