| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 157 | 63 | 47 | 41.964% |
그림과 같이 $\displaystyle\frac{N(N+1)}{2}$개의 구슬이 정삼각형 모양의 격자에 배열되어 있다. 이 격자는 $N$개의 층으로 구성되어 있다. 아래로 내려갈수록 각 층에 놓인 구슬의 개수는 증가하여 위에서 $i$번째 층에는 $i$개의 구슬이 놓인다.
각 구슬에는 수가 하나씩 적혀 있다. 이 격자 위의 부분 정삼각형이 주어질 때마다, 부분 정삼각형에 포함되는 구슬에 적힌 수의 합을 출력하는 프로그램을 작성하시오.
첫째 줄에 격자의 층의 수 $N$이 주어진다. $(2 \le N \le 1 \, 500)$
다음 $N$개의 줄에 걸쳐, $i$번째 줄에는 $i$개의 정수 $a_{i1}, a_{i2}, ..., a_{ii}$가 공백으로 구분되어 주어진다. $a_{ij}$는 위에서 $i$번째 층에 위치한 구슬 중 왼쪽에서 $j$번째에 위치한 구슬에 적힌 수이다. $(0 \le a_{ij} \le 500 \, 000)$
다음 줄에는 부분 정삼각형의 수 $Q$가 주어진다. $(1 \le Q \le 500 \, 000)$
다음 $Q$개의 줄에 걸쳐, 각 줄에는 부분 정삼각형을 결정하는 세 정수 $x$, $y$, $z$가 공백으로 구분되어 주어진다. $(1\le x \le N;$ $1 \le y \le x;$ $2 \le z \le N - x + 1)$
$Q$개의 줄에 걸쳐 한 줄에 하나씩, 주어진 $x$, $y$, $z$에 대하여, 다음과 같이 정의되는 부분 정삼각형에 포함되는 구슬에 적힌 수의 합을 출력한다.
4 1 2 3 4 5 6 7 8 9 10 6 1 1 4 2 1 3 2 2 3 3 1 2 3 2 2 3 3 2
55 35 41 19 22 25
두 번째 쿼리 2 1 3의 경우, 색칠된 구슬에 적힌 수의 합과 같다.
마지막 쿼리 3 3 2의 경우, 색칠된 구슬에 적힌 수의 합과 같다.
2 1 500000 1 2 1 1 2 1 1 2
500002 500002
C/C++, Java 등의 언어에서 일부 변수를 $32$비트 정수형으로 선언한 경우 오버플로우가 발생할 수 있음에 유의하라.
School > 대전과학고등학교 > 제1회 대전과학고등학교 프로그래밍 경진대회 DSHStack H번