Need Help in understanding the solution to ADASEA (SPOJ)

Problem link: SPOJ.com - Problem ADASEA

The implementation was pretty straightforward but I couldn’t understand how the expected value would work in this case.

I found a solution here: SPOJ/ADASEA.cpp at master · tr0j4n034/SPOJ · GitHub

The idea was to find all separate longest paths containing ‘#’ in them and just squaring them and adding it to the answer and finally dividing it by all the cells. Can someone tell me how does this work? Why does squaring all the paths work in this case?