Problem A
https://codejam.withgoogle.com/codejam/contest/8284486/dashboard#s=p0
Summing up all : we get
S(n)=((r*(r-1))/2)^2-((r+c)*(r-1)*r*(2r-1))/6+(r*c*(r-1)*r)/2
https://codejam.withgoogle.com/codejam/contest/8284486/dashboard#s=p0
Solution : http://ideone.com/lPWmS1
Approach :
Let no, of dots be r rows and c columns.
For side length=1 => No. of squares = (r-1)*(c-1)
For side length=2 => No. of squares=2*(r-2)*(c-2)
Because all axis aligned can also be diagonally arranged atmost 1 way
For side length=3 => No. of squares=3*(r-3)*(c-3)
Because all axis aligned can also be diagonally arranged atmost 2 way
.
.
.
So on till side length=min(r,c)-1
Summing up all : we get
S(n)=((r*(r-1))/2)^2-((r+c)*(r-1)*r*(2r-1))/6+(r*c*(r-1)*r)/2
Modulo can be taken using modular inverse of 2 , 6 .