#include #include #define MAX_N 1000001 int N; int d[MAX_N] = {0}; int x[MAX_N]; int comp(const void *a, const void *b) { return *(int *)a - *(int *)b; } void init(){ scanf("%d", &N); for (int i=0; i 0) { d[j] = d[j] > d[x[i]] + 1 ? d[j] : d[x[i]] + 1; } } } for (int i=0; i d[i] ? max : d[i]; printf("%d\n", max); }