반응형
문제 링크 : https://www.acmicpc.net/problem/2167
문제 내용
2차원 배열이 주어졌을 때 (i, j) 위치부터 (x, y) 위치까지에 저장되어 있는 수들의 합을 구하는 프로그램을 작성하시오. 배열의 (i, j) 위치는 i행 j열을 나타낸다.
소스코드
#include <iostream> using namespace std; int main() { // your code goes here int X, Y; int ** arr; int ** sum_arr; cin >> X; cin >> Y; arr = new int*[X+2]; sum_arr = new int*[X+2]; for(int i=0; i<=X+1; i++){ arr[i] = new int[Y+2]; sum_arr[i] = new int[Y+2]; } for(int i=1; i<X+1; i++){ for(int j=1; j<Y+1; j++){ cin >> arr[i][j]; } } for(int i=0; i<=X+1; i++){ arr[i][0] = 0; sum_arr[i][0] = 0; } for(int j=0; j<=Y+1; j++){ arr[0][j] = 0; sum_arr[0][j] = 0; } for(int i=1; i<X+1; i++){ for(int j=1; j<Y+1; j++){ sum_arr[i][j] = sum_arr[i][j-1] + sum_arr[i-1][j] - sum_arr[i-1][j-1] + arr[i][j]; } } int K, i,j,x,y; cin >> K; for(int k=0; k<K; k++){ cin >> i; cin >> j; cin >> x; cin >> y; cout << (sum_arr[x][y] - sum_arr[x][j-1] - sum_arr[i-1][y] + sum_arr[i-1][j-1]) << endl; } return 0; }
반응형
'컴퓨터 > Online Judge' 카테고리의 다른 글
[acmicpc.net] 2293 동전 1 (0) | 2016.09.20 |
---|---|
[acmicpc.net] 1932 숫자삼각형 (0) | 2016.09.18 |
[acmicpc.net] 2579 계단 오르기 (0) | 2016.09.09 |
[acmicpc.net] 2193 이친수 (0) | 2016.09.08 |
[acmicpc.net] 1463 1로 만들기 (0) | 2016.09.07 |