SUMHCN - Tổng Hình Chữ Nhật

Xem dạng PDF

Gửi bài giải


Điểm: 3,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho một bảng gồm m hàng và n cột.

Cho t yêu cầu có dạng a b c d, với mỗi yêu cầu, in ra tổng các số trong bảng chữ nhật con có hai góc đối diện là ô (a,b) và ô (c,d).

Input

Dòng đầu tiên chứa ba số nguyên dương m, n và t (1 ≤ m, n ≤ 200,1 ≤ t ≤ 40000).

Tiếp theo, mỗi dòng chứa n số nguyên là các phần tử của bảng.Các số này có trị tuyệt đối không quá ~ 10^9 ~.

Tiếp theo, mỗi dòng chứa bốn số nguyên a, b, c, d mô tả một yêu cầu (1 ≤ a ≤ c ≤ m, 1 ≤ b ≤ d ≤ n).

Output

Với mỗi yêu cầu, in ra tổng các số trong bảng chữ nhật con.

Sample

Input #1
2 1 3
-1
1
2 1 2 1
1 1 1 1
1 1 2 1
3 3 4
4 -5 -5
6 -6 -7
2 -6 4
3 2 3 3
2 3 2 3
3 2 3 3
1 2 2 3
Output #1
1
-1
0
-2
-7
-2
-23

Problem source: apok


Bình luận

Please read the guidelines before commenting.



  • 0
    vinhnek2k13  đã bình luận lúc 8, Tháng 2, 2026, 8:52

    full ac

    include <bits/stdc++.h>

    using namespace std;

    int main() { iosbase::syncwith_stdio(0); cin.tie(0); int m, n, t; while (cin >> m >> n >> t) { vector<vector<long long>> dp(m + 1, vector<long long>(n + 1, 0));

        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                long long val;
                cin >> val;
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] + val;
            }
        }
    
        while (t--) {
            int a, b, c, d;
            cin >> a >> b >> c >> d;
            long long ans = dp[c][d] - dp[a - 1][d] - dp[c][b - 1] + dp[a - 1][b - 1];
            cout << ans << '\n';
        }
    }
    return 0;
    

    }


  • 0
    dinhvantung0611  đã bình luận lúc 15, Tháng 3, 2024, 18:39

    Sao bài này lại được xếp vào dạng bài 3 điểm vậy. Code trâu cũng đã AC rồi, chưa cần miếng tư duy nào luôn