문제
수직선 형태의 길거리에 $1\le i\le N$을 만족하는 모든 정수 $i$에 대해 위치 $i$에는 $i$번 신호등이 위치해 있다. 이 신호등은 처음엔 모두 붉은색으로 표시되어 있다.
오늘은 신호등 점검일이다. $1, 2, \cdots, N$번의 사람이 순서대로 각 신호등을 점검한다. $i$번 사람은 위치 $0$에서 $i$초에 출발하며, 매초 $1$의 속도로 양의 방향으로 이동한다. 이동을 시작한 뒤, 매 $i$초가 지날 때마다 자신이 위치한 지점의 신호등에 다음 동작을 수행한다:
- $i$를 $4$로 나눈 나머지가 $0$이면 붉은 신호등은 그대로 두고, 푸른 신호등도 그대로 둔다.
- $i$를 $4$로 나눈 나머지가 $1$이면 붉은 신호등의 색을 푸른색으로 바꾸고, 푸른 신호등은 그대로 둔다.
- $i$를 $4$로 나눈 나머지가 $2$이면 붉은 신호등의 색을 푸른색으로 바꾸고, 푸른 신호등의 색을 붉은색으로 바꾼다.
- $i$를 $4$로 나눈 나머지가 $3$이면 붉은 신호등은 그대로 두고, 푸른 신호등의 색은 붉은색으로 바꾼다.
이때, 모그는 모든 사람이 순회한 후 특정 구간에 푸른 신호등이 몇 개가 있는지 궁금해졌다. 따라서 $Q$번의 질문을 하기로 했다.
- $l\, r$: 번호가 $l$ 이상 $r$ 이하인 신호등 중 푸른 신호등의 개수를 구한다.
모그의 질문에 대신 답해주도록 하자.
입력
첫째 줄에 양의 정수 $N$이 주어진다. $(1\le N\le 10^{12})$
둘째 줄에 양의 정수 $Q$가 주어진다. $(1\le Q\le 100)$
셋째 줄부터 $Q$개의 줄에 걸쳐 양의 정수 $l, r$이 공백으로 구분되어 주어진다. $(1\le l\le r\le N)$
출력
총 $Q$개의 줄에 걸쳐 답을 출력한다. $i$번째 줄에는 $i$번째 질문의 답을 출력한다.
예제 입력 1
5 3 1 3 2 4 1 5
예제 출력 1
1 0 2
예제는 $5$명의 사람이 $5$개의 신호등을 조작하는 상황을 다루고 있다.
- $1$번 사람은 $2$, $3$, $4$, $5$, $6$초에 각각 $1$, $2$, $3$, $4$, $5$번 신호등의 색을 붉다면 푸르게 바꾼다.
- $2$번 사람은 $4$, $6$초에 각각 $2$, $4$번 신호등의 색을 붉다면 푸르게, 푸르다면 붉게 바꾼다.
- $3$번 사람은 $6$초에 $3$번 신호등의 색을 푸르다면 붉게 바꾼다.
- $4$번 사람은 $8$초에 $4$번 신호등의 색을 그대로 둔다.
- $5$번 사람은 $10$초에 $5$번 신호등의 색을 붉다면 푸르게 바꾼다.
출처
Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2025. 11. C번
- 문제를 만든 사람: lunarlity
- 문제를 검수한 사람: chogahui05, pyb1031, utilforever