R00383
칠하기와 지우기
레이팅
의견: 0
설명
길이 \(N\)의 일렬로 늘어선 칸들이 있으며, 처음에는 모두 칠해지지 않은 상태다. 다음 연산을 처리한다.
1 l r: 구간 \([l, r]\)의 모든 칸을 칠한다.2 l r: 구간 \([l, r]\)의 모든 칸의 칠을 지운다.3 l r: 구간 \([l, r]\) 안에서 현재 칠해져 있는 칸의 개수를 출력한다.
구간 대입(칠/지움)과 구간 개수 질의를 lazy 세그먼트 트리로 처리한다.
제약
\(1 \le N, Q \le 100{,}000\)
\(1 \le l \le r \le N\)
입력 형식
첫 줄에 \(N\), \(Q\).
이후 \(Q\)줄에 1 l r(칠하기), 2 l r(지우기), 3 l r(개수 질의).
출력 형식
타입 3 질의마다 칠해진 칸의 개수를 한 줄에 출력한다.
예제 1
입력
6 5
1 1 4
3 1 6
2 3 4
3 1 6
1 5 6
출력
4
2설명
\([1,4]\)를 칠한 뒤 \([1,6]\)의 칠해진 칸은 4개. \([3,4]\)를 지우면 칠해진 칸은 1,2번뿐, \([1,6]\) 개수 2. 마지막 칠하기엔 질의 없음.
예제 2
입력
5 4
1 1 5
3 1 5
2 2 3
3 1 5
출력
5
3설명
\([1,5]\) 전체를 칠하면 \([1,5]\) 개수 5. \([2,3]\)을 지우면 1,4,5번만 남아 \([1,5]\) 개수 3.
문제 정보
riseoj 작성
출처 Original
태그
평가 및 의견
칠하기와 지우기
개요
Log in to rate problems.
개별 의견
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
칠하기와 지우기
게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다.
로그인하고 제출하기