[NOIP1997 普及组] 棋盘问题
题目描述
设有一个 N × M N \times M N×M方格的棋盘 ( 1 ≤ N ≤ 100 , 1 ≤ M ≤ 100 ) (1≤N≤100,1≤M≤100) (1≤N≤100,1≤M≤100)
求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。
例如:当 N = 2 , M = 3 N=2, M=3 N=2,M=3时:
正方形的个数有 8 8 8个:即边长为 1 1 1的正方形有 6 6 6个;
边长为 2 2 2的正方形有 2 2 2个。
长方形的个数有 10 10 10个:
即
2 × 1 2 \times 1 2×1的长方形有 4 4 4个
1 × 2 1 \times 2 1×2的长方形有 3 3 3个:
3 × 1 3 \times 1 3×1的长方形有 2 2 2个:
3 × 2 3 \times 2 3×2的长方形有 1 1 1个:
如上例:输入: 2 , 3 2,3 2,3
输出: 8 , 10 8,10 8,10
输入格式
N , M N,M N,M
输出格式
正方形的个数与长方形的个数
样例 #1
样例输入 #1
2 3
样例输出 #1
8 10
提示
【题目来源】
NOIP 1997 普及组第一题
代码
#include<iostream>
using namespace std;
int n,m,zheng,chang,shu;
int main()
{
cin>>n>>m;
shu=(1+n)*(1+m)*n*m/4;
for(int i=0;i<=min(n,m);i++)
{
zheng+=(n-i)*(m-i);
}
chang=shu-zheng;
cout<<zheng<<" "<<chang;
return 0;
}