for(int i=1;i<=20;i++) f[x][i]=f[f[x][i-1]][i-1],g[x][i]=max(g[x][i-1],g[g[x][i-1]][i-1]);
->
for(int i=1;i<=20;i++) f[x][i]=f[f[x][i-1]][i-1],g[x][i]=max(g[x][i-1],g[f[x][i-1]][i-1]);
。