훈련, 2라운드
시간 제한6초메모리 제한2048 MB
각 문제의 구현 실력 범위와 사고 실력 범위가 주어질 때, 문제를 순서대로 풀면서 한 문제를 풀 때마다 두 실력 중 하나를 1 올린다고 하면 최대 몇 문제를 풀 수 있는지 구합니다.
문제
아슐리는 브랜든 온라인 저지에서 다른 프로그래밍 대회를 준비하고 있다. 이 저지에는 코치 톰이 아슐리가 풀 문제 목록을 불러올 수 있는 기능이 그대로 남아 있다.
톰은 문제를 몇 개 골라 두었다. 각 문제에는 구현 난이도 범위와 사고 난이도 범위가 있다. 아슐리는 구현 실력 와 사고 실력 로 훈련을 시작한다. 톰이 불러온 순서대로 문제를 보며, 각 문제를 풀거나 건너뛴다. 한 번 건너뛴 문제에는 다시 돌아갈 수 없다.
아슐리는 현재 구현 실력과 사고 실력이 모두 해당 문제의 범위 안(양 끝 포함)에 있을 때만 문제를 풀 수 있다. 문제를 풀고 나면 반성하면서 구현 실력이나 사고 실력 중 하나를 1 올린다. 두 실력을 동시에 올릴 수는 없고, 반성을 건너뛸 수도 없다.
아슐리가 반성을 최적으로 계획할 때 풀 수 있는 문제 수의 최댓값을 구하시오.
입력
첫째 줄에 세 정수 , , 가 주어진다(, ). 은 문제 수, 는 아슐리의 초기 구현 실력, 는 초기 사고 실력이다.
이어지는 개의 줄에는 각각 네 정수 , , , 가 주어진다(, ). 각 줄은 문제 하나를 나타낸다. 구현 난이도 범위는 , 사고 난이도 범위는 이며, 양 끝을 포함한다.
출력
아슐리가 반성을 최적으로 선택했을 때 풀 수 있는 문제 수의 최댓값을 한 정수로 출력한다.