统计方形(数据加强版)
题目背景
1997年普及组第一题
题目描述
有一个 n × m n \times m n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
输入格式
一行,两个正整数 n , m n,m n,m( n ≤ 5000 , m ≤ 5000 n \leq 5000,m \leq 5000 n≤5000,m≤5000)。
输出格式
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。
样例 #1
样例输入 #1
2 3
样例输出 #1
8 10
‘’’
正方形个数:
边长为1: nm
边长为2:(n-1)(m-1)
边长为3:(n-2)*(m-2)
矩形个数:正方形个数+长方形个数
(1+2+…n)*(1+2+…m)长方形个数 = 矩形个数 - 正方形个数 ‘’’
n,m = map(int,input().split())
Square = 0
rectangular = 0
total = 0
a = min(n,m)#正方形边长最大,为最短的边
for i in range(1,a+1):#a能取到
Square += (n-i+1)*(m-i+1)
total = sum(range(1,n+1))* sum(range(1,m+1))
rectangular = total - Square
print(Square,rectangular)