B4232 [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 3 题

· · 题解

欢迎报名洛谷网校,期待和大家一起进步!

本题考察分支结构。

矩形的面积可以根据矩形左上角和右下角的坐标得知。假设矩形左上角的坐标是 (x_a,y_a),右下角的坐标是 (x_b,y_b),那么矩形的面积就是长 \times 宽,也就是 (x_b-x_a)\times (y_b-y_a)

因此,只需要记录下 x_1,x_2,x_3,x_4 的最小值、最大值做差,y_1,y_2,y_3,y_4 的最小值、最大值做差,两个差值的乘积就是答案。

参考代码(部分):

// 找出 x 的最小值和最大值
int min_x = x1;
if (x2 < min_x) min_x = x2;
if (x3 < min_x) min_x = x3;
if (x4 < min_x) min_x = x4;

int max_x = x1;
if (x2 > max_x) max_x = x2;
if (x3 > max_x) max_x = x3;
if (x4 > max_x) max_x = x4;

(中间省略)

cout << (max_x - min_x) * (max_y - min_y) << endl;