思路
将所有的方块标记成false,然后对每个输入的方块进行面积的累加,累加之后将已有的方块标记为true,同时进行判定本轮操作的方块,若操作前方块已经为true,则将面积减一
#include <iostream>
#include <cstring>
using namespace std;
//class window
//{
//public :
// window()
// {
// x1 = 0;
// x2 = 0;
// y1 = 0;
// y2 = 0;
//
// }
// ~window(){}
//public :
// int x1,x2,y1,y2;
//
//
//
//};
int main()
{
//window win[101];
bool flag[101][101];
memset(flag,false,sizeof(flag)); //初始化bool
int x1,x2,y1,y2;
int num, sum = 0;
cin>>num;
for (int i = 0;i<num;i++)
{
cin >> x1>>y1>>x2>>y2; //输入
sum += (x2-x1)*(y2-y1);
for (int j = x1;j<x2;j++) //遍历本轮操作的方块
for (int k = y1;k<y2;k++)
{
if (flag[j][k]) //先判断是否为true,为true就将面积减一
sum--;
flag[j][k] = true; //再将所有本轮操作的方块标记为true
}
}
cout<<sum;
return 0;
}