如何计算面积交集

发布时间 2023-05-04 17:46:40作者: catting123

CSP 202303-1 田地丈量

C++代码

#include<iostream>

using namespace std;

int main() {
    int n, a, b;
    cin >> n >> a >> b;
    int sum = 0;
    while (n--) {
        int x1, x2, y1, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        int weight = max((min(x2, a) - max(x1, 0)), 0);
        int height = max((min(y2, b) - max(y1, 0)), 0);
        sum += weight * height;
    }
    cout << sum;
    return 0;
}

Python代码

学习如何使用Python输入输出。

def main():
    n, a, b=list(map(int, input().split()))
    ans = 0
    for _ in range(n):
        x1, y1, x2, y2 = list(map(int, input().split()))
        ans += intersection(x1, y1, x2, y2, a, b)
    print(ans)
    
def intersection(x1, y1, x2, y2, a, b):
    weight = max((min(a, x2) - max(x1, 0)), 0)
    height = max((min(b, y2) - max(y1, 0)), 0)
    return weight*height

if __name__ == '__main__':
    main()