만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

부분 직사각형 넓이의 합

시간 제한2초메모리 제한512 MB

요약
각 N에 대해 N x N 격자 안의 모든 정수 좌표 부분 직사각형 넓이의 합을 구한다.
난이도

쉬움10점 중 3점

유형
수학, 조합론
정답자
아직 제출이 없습니다

문제

좌표 (0,0)(0, 0)부터 (N,N)(N, N)까지의 격자를 생각하자.

네 꼭짓점이 정수 좌표이며 0≤r1<r2≤N0 \le r_1 < r_2 \le N과 0≤c1<c2≤N0 \le c_1 < c_2 \le N을 만족하는 모든 부분 직사각형 [r1,r2]×[c1,c2][r_1, r_2] \times [c_1, c_2]를 고려한다. 각 부분 직사각형의 넓이는 (r2−r1)×(c2−c1)(r_2 - r_1) \times (c_2 - c_1)이다. 다음 의사코드는 모든 부분 직사각형의 넓이의 합을 구한다.

sum = 0
for r1 = 0 to N-1
  for c1 = 0 to N-1
    for r2 = r1+1 to N
      for c2 = c1+1 to N
        sum = sum + (r2-r1)*(c2-c1)
print(sum)

NN이 주어졌을 때 이 합을 효율적으로 계산하라. 입력에는 여러 테스트 케이스가 주어진다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 다음 TT개의 줄에는 각 테스트 케이스의 정수 NN이 하나씩 주어진다. NN은 64비트 정수 범위에 들어가며 0≤N≤92233720368547758070 \le N \le 9223372036854775807을 만족한다.

출력

각 테스트 케이스마다 위에서 정의한 합을 한 줄에 출력한다. 합은 64비트 정수 범위를 넘을 수 있으므로 임의 정밀도 정수로 출력해야 한다.

예제1

  1. 예제 1

    입력
    5
    1
    2
    3
    4
    1000
    
    예상 출력
    1
    16
    100
    400
    27944805889000000