잡초 제거
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
잡초 제거
어려움
유형
프로그래밍
배점
100
참여자
34
정답률
61.7%
3
3

문제


한철이는 방학동안 집에서 빈둥거리며 놀다가 집 앞마당에 잡초가 많이 자랐다는 사실을 깨달았다. 그래서 한철이는 이 잡초들을 제거하고자 하는데 이왕이면 좀 더 효율적으로 제거하고자, 자신의 앞마당에 있는 잡초의 양을 관리하는 프로그램을 작성하고자 한다. 프로그램을 작성하는 동안 잡초가 계속해서 자랄 것이 분명하므로 우선 잡초가 더 이상 자라지 않게 약을 뿌려놓았다. 하지만 약의 성능이 썩 좋지 않아 몇몇 잡초는 조금씩 자랄 것이다.

한철이의 잡초 관리 프로그램은 기본적으로 다음과 같은 기능을 제공한다.

  • 1번 연산: [a, b] 구간에 있는 잡초의 양을 출력한다.
  • 2번 연산: a 자리에 있는 잡초가 b만큼 자란다.
  • 3번 연산: a 자리에 있는 잡초를 b만큼 제거한다.

한철이가 프로그램을 작성하는 것을 도와주자!


입력


  • q가 1이면 
  • q가 2또는 3이면 

첫째 줄에 앞마당의 길이와 프로그램에 요청할 연산의 횟수가 각각 정수 N, Q로 주어진다. (단, )

둘째 줄에 현재 앞마당에 자라있는 잡초의 양 이 공백으로 구분되어 정수로 주어진다. (단, )

이후 Q개의 줄에 걸쳐 세 개의 정수 q a b가 주어진다. 여기서 q는 연산의 번호를 뜻한다.

단, 연산의 도중에 잡초의 양이 음수가 되는 경우는 입력으로 주어지지 않는다.


출력


q가 1일 때만 해당하는 구간에 있는 잡초의 양을 각 줄에 출력한다.


입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
33
123
123
227
123
출력
5
12
예시 2
입력
55
85447
255
122
257
238
145
출력
5
23
예시 3
입력
710
1076710101
124
241
167
245
354
123
145
264
312
155
출력
20
11
13
19
6
예시 4
입력
1010
1620197271237
269
3712
324
128
234
2719
2919
1110
292
355
출력
66
119
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)