返回题解分享
讨论 / 题解分享/ 帖子详情

矩形总面积(编程题) - 题解

#include <bits/stdc++.h>
#define objl '\n'
typedef long long ll;
using namespace std;
//数据结构在这里定义 

void solve(){
//cin cout在这里 
	int x1,x2,x3,x4,y1,y2,y3,y4;
	cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
	ll area1 = (x2 - x1) * (y2 - y1);
	ll area2 = (x4 - x3) * (y4 - y3);
	// 重叠区域的宽度 沿着 x轴垂直划线
	// 重叠的起始位置是 两个区域 起始点更大的那个
	// 重叠的结束位置是 两个区域 结束点更小的那个 
	ll w = max(0, min(x2,x4) - max(x1,x3));
	// 长度同理
	ll h = max(0, min(y2,y4) - max(y1,y3)); 
	ll ans = area1 + area2 - w * h;
	cout << ans << endl;
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;//多组数据要cin
	//cin >> t;
	t = 1;
	while(t--){
		solve();
	} 
	return 0;//必须加return 0 
}
0 回复 0 转发 0 喜欢 5 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!