**Nhắc nhở: hãy đọc kĩ và hiểu được ý tưởng và thuật toán trong hướng dẫn này, không quá phụ thuộc vào code hướng dẫn**
**Ý tưởng:** nhận thấy rằng các điểm trong hình chữ nhật luôn ở trong tọa độ nguyên dương ((1,1) đến (100,100)) nên ta chỉ cần khai báo bằng mảng thường để đánh dấu các điểm nằm trong các hình chữ nhật. Sau khi nhập hết thì ta chỉ cần duyệt tất cả các điểm nếu được đánh dấu rồi thì tăng biến kết quả và xuất ra màn hình.
**Khai báo:** gọi mảng 2 chiều f là mảng dùng để lưu các điểm nằm trong hình chữ nhật ở kiểu dữ liệu bool hoặc int để đánh dấu các điểm nằm trong ít nhất 1 hình chữ nhật.
**Thuật toán:** ban đầu gán tất cả các phần tử của mảng 2 chiều f bằng 0 tức là chưa có điểm nào được đánh dấu. Nhập tọa độ các điểm góc trái dưới và góc phải trên của hình chữ nhật. Sau đó dùng 2 vòng for lồng để đánh dấu các điểm nằm trong nó (f[i][j]=1 hoặc f[i][j]=true). Gọi biến kết quả bài toán là res. Duyệt tất cả các điểm nằm trong phạm vi, mỗi lần gặp f[i][j]=1 hoặc f[i][j]=true thì tăng biến res. Ghi ra biến res.
**Code C++ như sau:**
```
#include <bits/stdc++.h>
using namespace std;
int a,b,c,d,f[1000][1000],n,res=0;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
while(n--){
cin>>a>>b>>c>>d;
for(int i=min(a,c);i<=max(a,c);++i)
for(int j=min(b,d);j<=max(b,d);++j)
f[i][j]=1;
}for(int i=1;i<=100;++i)
for(int j=1;j<=100;++j)
if(f[i][j]==1)
++res;
cout<<res;
}
```