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]));
}