아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

행렬의 간단한 연산

면접 대비

시간 제한1초메모리 제한512 MB

요약
작은 행렬에 행 덧셈과 열 덧셈 질의를 적용한 뒤, 최종 원소들의 합, 최솟값, 최댓값을 출력한다.
난이도

쉬움10점 중 2점

유형
배열, 시뮬레이션, 구현, 행렬
정답자
아직 제출이 없습니다

문제

행렬은 데이터를 N개의 행과 M개의 열로 이루어진 직사각형 배열에 담는 수학적 대상이다. 행은 1부터 N까지, 열은 1부터 M까지 번호가 매겨진다. 행렬은 매우 강력하고 여러 곳에서 유용하게 쓰인다. 이 문제에서는 행렬의 두 가지 간단한 연산, 즉 행 덧셈과 열 덧셈에 집중한다.

N개의 행과 M개의 열로 이루어진 정수 행렬과 다음 형식의 쿼리 Q개가 주어진다.

  • row k val: k번째 행의 모든 원소에 val을 더한다.
  • col k val: k번째 열의 모든 원소에 val을 더한다.

모든 쿼리를 수행한 뒤 다음 세 수를 출력하시오.

  • sum: 행렬의 모든 원소의 합,
  • min: 행렬에서 가장 작은 원소의 값,
  • max: 행렬에서 가장 큰 원소의 값.

이해를 돕기 위해 예제 입력을 참고하시오.

입력

첫째 줄에 행렬의 크기를 나타내는 두 정수 N M (1 ≤ N, M ≤ 50)이 주어진다. 이는 각각 행과 열의 개수이다. 다음 N개의 줄에는 각각 M개의 정수 Ai,j (-100 ≤ Ai,j ≤ 100)가 주어지며, 이는 i번째 행 j번째 열의 행렬 원소이다 (1 ≤ i ≤ N, 1 ≤ j ≤ M). 그다음 줄에는 쿼리의 개수를 나타내는 정수 Q (0 ≤ Q ≤ 100)가 주어진다. 다음 Q개의 줄에는 각각 다음 형식 중 하나의 쿼리가 주어진다.

  • row k val (1 ≤ k ≤ N; -100 ≤ val ≤ 100)
  • col k val (1 ≤ k ≤ M; -100 ≤ val ≤ 100)

출력

문제에서 설명한 대로 sum min max 세 정수를 한 줄에 하나의 공백으로 구분하여 출력한다.

예제3

  1. 예제 1

    입력
    3 4
    1 1 1 1
    1 1 1 1
    1 1 1 1
    2
    row 1 3
    col 4 -2
    
    예상 출력
    18 -1 4
    
  2. 예제 2

    입력
    4 3
    10 10 10
    10 10 10
    10 10 10
    10 10 10
    5
    row 2 -5
    col 3 6
    col 1 -10
    row 4 7
    col 1 3
    
    예상 출력
    122 -2 23
    
  3. 예제 3

    입력
    2 3
    15 7 8
    31 1 14
    3
    row 2 -15
    col 1 10
    row 1 2
    
    예상 출력
    57 -14 27