【CSP】202303-1_田地丈量Python实现
文章目录
- @[toc]
- 试题编号
- 试题名称
- 时间限制
- 内存限制
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 样例解释
- 子任务
- `Python`实现
文章目录
- @[toc]
- 试题编号
- 试题名称
- 时间限制
- 内存限制
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 样例解释
- 子任务
- `Python`实现
试题编号
202303-1
试题名称
田地丈量
时间限制
1.0s
内存限制
512.0MB
问题描述
- 西西艾弗岛上散落着 n n n块田地,每块田地可视为平面直角坐标系下的一块矩形区域,由左下角坐标 ( x 1 , y 1 ) (x_{1} , y_{1}) (x1,y1)和右上角坐标 ( x 2 , y 2 ) (x_{2} , y_{2}) (x2,y2)唯一确定,且满足 x 1 < x 2 x_{1} < x_{2} x1<x2、 y 1 < y 2 y_{1} < y_{2} y1<y2,这 n n n块田地中,任意两块的交集面积均为 0 0 0,仅边界处可能有所重叠
- 最近,顿顿想要在南山脚下开垦出一块面积为 a × b a \times b a×b矩形田地,其左下角坐标为 ( 0 , 0 ) (0 , 0) (0,0)、右上角坐标为 ( a , b ) (a , b) (a,b),试计算顿顿选定区域内已经存在的田地面积
输入格式
- 从标准输入读入数据
- 输入共 n + 1 n + 1 n+1行
- 输入的第一行包含空格分隔的三个正整数 n n n、 a a a和 b b b,分别表示西西艾弗岛上田地块数和顿顿选定区域的右上角坐标
- 接下来 n n n行,每行包含空格分隔的四个整数 x 1 x_{1} x1、 y 1 y_{1} y1、 x 2 x_{2} x2和 y 2 y_{2} y2,表示一块田地的位置
输出格式
- 输出到标准输出
- 输出一个整数,表示顿顿选定区域内的田地面积
样例输入
4 10 10
0 0 5 5
5 -2 15 3
8 8 15 15
-2 10 3 15
样例输出
44
样例解释
- 如图所示,选定区域内田地(绿色区域)面积为 44 44 44
子任务
- 全部的测试数据满足 n ≤ 100 n \leq 100 n≤100,且所有输入坐标的绝对值均不超过 1 0 4 10^{4} 104
Python
实现
n, a, b = map(int, input().split())
area = 0
for _ in range(n):
x1, y1, x2, y2 = map(int, input().split())
if x1 >= a or y1 >= b or x2 <= 0 or y2 <= 0:
continue
area += (min(x2, a) - max(x1, 0)) * (min(y2, b) - max(y1, 0))
print(area)