this code is the solution to this problem https://codeforces.com/problemset/problem/136/A in codeforces .... I understand the problem and I solved it but I don't understand this solution.. please someone explain to me this code
int n,a[101],i,j;
main()
{
    n||scanf("%d",&n);
    i-n&&(scanf("%d",a),a[*a]=++i,main(),printf("%d ",a[++j]));
}
 
    