[C_AR122-難] 吃麵包II
問題描述 :
有 NXN 個麵包在你面前排成一排,每個麵包都有不同的飽足程度,你想知道把其中某一範圍內的麵包吃掉會達到多少飽足度
輸入說明 :
每組測試資料的開頭會有兩個正整數 N, M (N ≤100 , M ≤ 100,000)
接下來一行有 NXN 個不超過 100 的正整數,依序代表每個麵包的飽足度
接下來 M 行每行有四個數字 startX, startY, endX, endY (1≤ startX ≤ endX ≤N , 1 ≤ startY ≤ endY ≤ N)
代表你想要吃掉此矩陣範圍內的所有麵包。
輸出說明 :
對每組測試資料輸出 M 行,代表吃完範圍內麵包的總飽足程度。
範例 :
有 NXN 個麵包在你面前排成一排,每個麵包都有不同的飽足程度,你想知道把其中某一範圍內的麵包吃掉會達到多少飽足度
輸入說明 :
每組測試資料的開頭會有兩個正整數 N, M (N ≤100 , M ≤ 100,000)
接下來一行有 NXN 個不超過 100 的正整數,依序代表每個麵包的飽足度
接下來 M 行每行有四個數字 startX, startY, endX, endY (1≤ startX ≤ endX ≤N , 1 ≤ startY ≤ endY ≤ N)
代表你想要吃掉此矩陣範圍內的所有麵包。
輸出說明 :
對每組測試資料輸出 M 行,代表吃完範圍內麵包的總飽足程度。
範例 :
輸入範例 | 輸出範例 |
3 3 1 2 3 4 5 6 7 8 9 1 1 3 3 1 1 1 3 1 1 3 1 | 45 6 12 |
- #include <iostream>
- using namespace std;
- int main() {
- // [C_AR122-難] 吃麵包II
- int N, M;
- cin >> N >> M;
- int bread[N][N];
- int startX, startY, endX, endY;
- int sum = 0;
- for(int i = 0;i < N;i++)
- {
- for(int j = 0;j < N;j++)
- {
- cin >> bread[i][j];
- }
- }
- for(int i = 0;i < M;i++)
- {
- cin >> startX >> startY >> endX >> endY;
- for(int j = startX-1;j <= endX-1;j++)
- {
- for(int k = startY-1; k <= endY-1;k++)
- {
- sum = sum + bread[j][k];
- }
- }
- cout << sum << endl;
- sum = 0;
- }
- return 0;
- }
沒有留言:
張貼留言