만드는 중입니다

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

프로그램

면접 대비

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

요약
프로그램 크기와 CD 용량이 주어졌을 때, 각 프로그램을 용량이 충분한 서로 다른 CD에 하나씩 넣을 수 있는 최대 개수를 구합니다.
난이도

쉬움10점 중 3점

유형
그리디, 정렬, 투 포인터
정답자
아직 제출이 없습니다

문제

Bajtazar는 컴퓨터를 바꾸면서 기존 컴퓨터의 소프트웨어를 새 컴퓨터로 옮겨야 한다. 보안이 중요해서 클라우드나 이메일로는 프로그램을 보내지 않고, CD에 구워서 옮기기로 했다.

CD 한 장에는 남은 공간이 얼마든 프로그램을 최대 한 개만 저장한다. 프로그램을 여러 CD에 나눠 저장할 수 없다. 각 프로그램은 한 장의 CD에 통째로 저장되거나, 어느 CD에도 저장되지 않는다.

프로그램마다 크기가 있고, CD마다 용량이 있다. 프로그램을 CD에 저장하려면 프로그램의 크기가 그 CD의 용량 이하여야 한다.

이 규칙을 지키면 모든 프로그램을 옮기지 못할 수도 있다. 규칙을 지키면서 옮길 수 있는 프로그램의 최대 개수를 구하라.

입력

첫 번째 줄에 프로그램의 개수 NN (1≤N≤1061 \le N \le 10^6)이 주어진다.

두 번째 줄에는 각 프로그램의 크기 AiA_i (1≤Ai≤1091 \le A_i \le 10^9) NN개가 바이트 단위로 공백을 두고 주어진다.

세 번째 줄에 CD의 개수 MM (1≤M≤1061 \le M \le 10^6)이 주어진다.

네 번째 줄에는 각 CD의 용량 BiB_i (1≤Bi≤1091 \le B_i \le 10^9) MM개가 바이트 단위로 공백을 두고 주어진다.

출력

규칙을 지키면서 옮길 수 있는 프로그램의 최대 개수를 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    5
    3 10 20 7 4
    4
    100 1 8 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3
    42 34 21
    4
    9 20 18 7
    
    예상 출력
    0