아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

눈싸움 2

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

요약
스웨덴과 핀란드가 던진 눈덩이 크기 두 목록이 각각 증가하는 순서로 주어질 때, 자기 방어로 던졌을 수 있는 눈덩이의 최대 개수를 구한다.
난이도

보통10점 중 5점

유형
그리디, 투 포인터, 동적 계획법, 이분 탐색
정답자
아직 제출이 없습니다

문제

IOI가 열리는 동안 스웨덴과 핀란드는 서로 눈싸움을 한다. 규칙은 다음과 같다.

  • 두 나라 중 하나, 이를테면 핀란드가 다른 나라를 향해 눈덩이를 던진다.
  • 그러면 스웨덴은 (자기 방어를 위해) 더 큰 눈덩이를 되던진다.
  • 그러면 핀란드도 더 큰 눈덩이를 되던진다.
  • ... 어느 나라가 빗나갈 때까지 계속된다 (첫 번째 던지기에서 바로 빗나갈 수도 있다).
  • 그런 다음 처음부터 다시 시작하며, 더 작은 눈덩이로 시작하거나 다른 나라가 먼저 던질 수도 있다.

눈싸움이 끝난 뒤 다른 나라 몇 곳의 감독관들이 현장에 온다. 그들은 땅에 남은 눈덩이 잔해를 보고 그 양에 몹시 놀란다. 이 일은 다음 IOI 이사회에 올라가야 한다! 누군가 벌칙으로 대회 기간 동안 스웨덴과 핀란드의 사탕 금지를 제안한다. 스웨덴과 핀란드는 항변한다. 그건 그저 자기 방어였다고!

양쪽 방향으로 던져진 눈덩이의 크기가 주어졌을 때, 그중 자기 방어로 던져졌을 수 있는 눈덩이는 최대 몇 개인가?

입력

첫 번째 줄에는 두 정수 NN과 MM이 주어진다. 1≤N,M≤100 0001 \le N,M \le 100\,000. 두 번째 줄에는 스웨덴이 던진 눈덩이의 크기 NN개 aia_i가 주어진다. 1≤ai≤1 000 0001 \le a_i \le 1\,000\,000. 세 번째 줄에는 핀란드가 던진 눈덩이의 크기 MM개 bib_i가 주어진다. 1≤bi≤1 000 0001 \le b_i \le 1\,000\,000.

두 수열은 모두 오름차순으로 주어진다.

출력

자기 방어로 던져졌을 수 있는 눈덩이 개수의 최댓값을 나타내는 정수 하나를 출력한다.

힌트

첫 번째 예제에서 스웨덴은 크기 1, 3, 4, 5인 눈덩이 네 개를 던졌고, 핀란드는 크기 2, 3인 눈덩이 두 개를 던졌다.

예를 들어 스웨덴이 크기 1인 눈덩이를 핀란드에 먼저 던지고, 핀란드가 자기 방어로 크기 2인 눈덩이를 되던지고, 스웨덴이 크기 3인 눈덩이로 응수하다가 빗나갔다고 하자. 그런 다음 핀란드는 남은 크기 2인 눈덩이를 던지고, 스웨덴이 크기 4인 눈덩이로 응수하다가 또 빗나간다. 스웨덴은 마지막 크기 5인 눈덩이도 빗나간다. 모두 합쳐 눈덩이 3개가 자기 방어로 던져졌다.

두 번째 예제에서는 어떤 눈덩이도 자기 방어였을 수 없다. 자기 방어로 던진 눈덩이는 앞서 던진 눈덩이보다 커야 하기 때문이다.

예제2

  1. 예제 1

    입력
    4 2
    1 3 4 5
    2 3
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 3
    1 1 1
    1 1 1
    
    예상 출력
    0