2017年12月30日 星期六

[C_AR122-難] 吃麵包II(C++)

[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 行,代表吃完範圍內麵包的總飽足程度。
範例 :

輸入範例輸出範例
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

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_AR122-難] 吃麵包II  
  6.     int N, M;  
  7.     cin >> N >> M;  
  8.     int bread[N][N];  
  9.     int startX, startY, endX, endY;  
  10.     int sum = 0;  
  11.     for(int i = 0;i < N;i++)  
  12.     {  
  13.         for(int j = 0;j < N;j++)  
  14.         {  
  15.             cin >> bread[i][j];  
  16.         }  
  17.     }  
  18.     for(int i = 0;i < M;i++)  
  19.     {  
  20.         cin >> startX >> startY >> endX >> endY;  
  21.         for(int j = startX-1;j <= endX-1;j++)  
  22.         {  
  23.             for(int k = startY-1; k <= endY-1;k++)  
  24.             {  
  25.                 sum = sum + bread[j][k];  
  26.             }  
  27.         }  
  28.         cout << sum << endl;  
  29.         sum = 0;  
  30.     }  
  31.     return 0;  
  32. }  

沒有留言:

張貼留言