만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

두 선장

시간 제한3초메모리 제한1024 MB

요약
두 선장의 명령 계획을 보고, 두 선장의 부하가 같은 대포에 동시에 놓이지 않도록 rum 명령을 최소로 끼워 넣는 개수를 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

흑진주호에는 선장이 두 명 있다. 잭 스패로 선장과 바르보사다. 배에는 한 줄로 늘어선 대포가 정확히 nn개 있다. 전투 중 두 선장은 1분마다 자기 선원들에게 동시에 명령을 내린다. 명령은 다음 세 가지다.

  • send ll rr: 번호가 ll부터 rr까지(양 끝 포함)인 대포를 쏘도록 자기 선원들을 보낸다
  • back ll rr: 번호가 ll부터 rr까지(양 끝 포함)인 대포에서 자기 선원들을 모두 불러들인다. 이 구간의 대포 중 해당 선장에게 복종하는 선원이 없는 대포는 아무 변화가 없다
  • rum: 럼주 한 병을 더 가져온다

각 명령은 즉시 실행되고, 다음 명령이 나올 때까지 1분 동안 전투가 계속된다. 어느 순간이든 서로 다른 선장에게 복종하는 선원이 같은 대포에 함께 있으면 그들은 싸우다 서로 죽는다. 어느 선장도 이런 상황을 원하지 않으므로, 선장들은 이 문제를 해결해 달라고 요청했다.

전투 전에 두 선장은 각자 행동 계획을 세웠다. 잭 스패로 선장의 계획은 m1m_1개의 명령으로, 바르보사의 계획은 m2m_2개의 명령으로 이루어져 있다. 전투의 ii분 시작 시점에 각 선장은 계획에 ii개 이상의 명령이 있으면 ii번째 명령을 선원들에게 내린다. 선원이 모두 살아남도록 계획을 고쳐야 한다. 계획을 고치는 방법은 rum 명령을 원하는 위치에 여러 개 끼워 넣는 것뿐이다. 선장들은 계획을 바꾸기 싫어하므로, 두 계획에 추가하는 rum 명령의 총 개수는 최소여야 한다.

입력

첫 줄에 대포의 개수 nn이 주어진다 (1≤n≤1091 \le n \le 10^9).

둘째 줄에 잭 스패로 계획의 명령 개수 m1m_1이 주어진다 (1≤m1≤30001 \le m_1 \le 3000). 이어서 m1m_1줄에 명령이 위 형식대로 주어진다. ll과 rr을 쓰는 모든 명령에서 1≤l≤r≤n1 \le l \le r \le n이 성립한다. 계획의 마지막 명령은 back 1 nn이다.

다음 줄에 바르보사 계획의 명령 개수 m2m_2가 주어진다 (1≤m2≤30001 \le m_2 \le 3000). 이어서 m2m_2줄에 명령이 주어진다. 같은 조건이 성립하며, 계획의 마지막 명령은 back 1 nn이다.

출력

추가해야 하는 rum 명령의 최소 개수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    4
    send 1 1
    send 2 2
    back 1 1
    back 1 3
    5
    send 2 3
    send 1 1
    back 2 2
    rum
    back 1 3
    
    예상 출력
    3