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

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

경매 시장

면접 대비

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

요약
정해진 순서의 구매자들이 상품을 왼쪽부터 훑으며 살 수 있거나 최고 입찰가를 넘길 수 있는 첫 상품에 입찰할 때, 최종적으로 낙찰되는 상품 수를 구한다.
난이도

보통10점 중 6점

유형
그리디, 이분 탐색, 세그먼트 트리, 구현
정답자
아직 제출이 없습니다

문제

어느 날 경매 시장에서 1번부터 N번까지 번호가 붙은 N개의 물품이 판매된다. i번 물품의 시작 가격은 Si이다. 경매에 참여하려는 M명의 구매 희망자가 1번부터 M번까지 번호가 붙어 있고, j번 구매 희망자의 예산은 Bj이다.

각 구매 희망자는 1번부터 M번까지 차례대로, 각자 1번부터 N번까지 물품을 하나씩 살펴보며 그 물품에 입찰할 수 있는지 판단한다. j번 구매 희망자가 i번 물품에 입찰할 수 있는 것은 다음 조건 중 하나 이상을 만족할 때이다.

  • 아직 아무도 i번 물품에 입찰하지 않았고 Bj ≥ Si이다.
  • 누군가 i번 물품에 입찰했고, Bj가 그 i번 물품에 대한 현재 최고 입찰가보다 엄격하게 크다.

j번 구매 희망자가 i번 물품에 입찰할 수 있으면, 그 물품에 Bj를 입찰하고 남은 물품을 살펴보는 것을 중단한다. 즉 (i + 1)번부터 N번까지의 물품은 무시한다. 이 행동 방식에 따라 각 구매 희망자는 많아야 1개의 물품에만 입찰한다. 구매 희망자가 예산이 너무 낮아 어떤 물품에도 입찰하지 못하는 것도 가능하다.

모든 구매 희망자가 입찰하거나 모든 물품을 살펴본 뒤 하루가 끝나면, 각 물품의 최고 입찰가가 정해지고 물품은 각각 최고 입찰자에게 판매된다. 입찰자가 없는 물품은 판매되지 않는다.

하루가 끝났을 때 성공적으로 판매된 물품의 수를 구하라.

입력

입력은 정수 하나를 담은 줄로 시작한다. N (1 ≤ N ≤ 100 000)은 경매 시장에서 판매되는 물품의 수이다. 둘째 줄에는 N개의 정수 Si (1 ≤ Si ≤ 109)가 주어지며, 각 물품의 시작 가격이다. 셋째 줄에는 정수 M (1 ≤ M ≤ 100 000)이 주어지며, 구매 희망자의 수이다. 넷째 줄에는 M개의 정수 Bj (1 ≤ Bj ≤ 109)가 주어지며, 각 구매 희망자의 예산이다.

출력

하루가 끝났을 때 성공적으로 판매된 물품의 수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    100 200 150
    5
    110 250 220 130 140
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4
    1000 1000 1000 1000
    4
    3000 2000 2500 1000
    
    예상 출력
    3
    
  3. 예제 3

    입력
    5
    10 40 30 50 20
    4
    5 50 10 15
    
    예상 출력
    1