问题描述
小蓝有一个
n * m
大小的矩形水域,小蓝将这个水域划分为
n
行
m
列,行数从
1
到
n
标号,列数从
1
到
m
标号。每行和每列的宽度都是单位
1
。
现在,这个水域长满了水草,小蓝要清理水草。
每次,小蓝可以清理一块矩形的区域,从第
r1
行(含)到第
r2
行(含)的第
c1
列(含)到
c2
列
(含)。
经过一段时间清理后,请问还有多少地方没有被清理过。
输入格式
输入第一行包含两个整数
n, m
,用一个空格分隔。
第二行包含一个整数
t
,表示清理的次数。
接下来
t
行,每行四个整数
r1, c1, r2, c2
,相邻整数之间用一个空格分隔,表示一次清理。请注意输入
的顺序。
输出格式
输出一行包含一个整数,表示没有被清理过的面积。
样例输入
2 3
2
1 1 1 3
1 2 2 2
样例输出
2
思路:遍历,用vis数组记录水草是否被清理过,需要注意的是这里遍历水草时,是一格一格进行遍历,不是以矩阵为单位
n,m = map(int,input().split())
t= int(input())
vis=[[0]*(m+1) for i in range(n+1)]#访问数组
cnt=0
for k in range(t):
r1,c1,r2,c2=map(int,input().split())
for i in range(r1,r2+1):#遍历范围内未访问的数组
for j in range(c1,c2+1):
if vis[i][j]==0 :
vis[i][j] = 1
cnt+=1#清理过的草坪+1
print(n*m-cnt)