https://www.acmicpc.net/problem/25606
문제요약
- i번째 날 받은 물의 양이 주어지고
- 매일 M만큼 물이 증발할때
- 두 가지 쿼리 처리
- i 번째 날에 있는 물의 양의 합
- i 번째 날에 증발하는 물의 양의 합
접근법
- 날짜 기준으로 생각
- i 번째 날짜에 얼마큼의 물이 있을까
- i 번째 날짜에 멀마큼 물이 증발할까
- i 번째 날에 물을 받으면, 이후에 어떻게 증발에 기여가 될까!
- i 번째 물의 합 = 전날 물의 양 + i번째 날 추가되는 양 - 증발하는 양
- i 날짜에 ai가 추가되면, 이후 -m, -m, -m, ... -x 만큼 감소에 기여할 것임
- 배열이 있다면 -m, -m, -m, ... -x 체크를 할텐데....
- 이때 떠오르는 아이디어가 -1, +1 기법임 (이것을 imos라고 부른다고 함)
- -m의 범위(나누기로 판단), 여분을 어떻게 처리할지(나머지)
- 배열 인덱스 벗어나는 것 조심