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

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

Programy

면접 대비

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

요약
각 디스크에는 프로그램 하나만 저장할 수 있을 때, 주어진 프로그램 크기와 디스크 용량으로 옮길 수 있는 프로그램의 최대 개수를 구한다.
난이도

보통10점 중 5점

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

문제

Bajtazar zmienia właśnie komputer, musi więc przenieść swoje aktualne oprogramowanie ze starego komputera na nowy. Praca jaką wykonuje Bajtazar wymaga od niego szczególnej dbałości o bezpieczeństwo, dlatego wysyłanie programów do chmury czy przez e-mail nie wchodzi w grę. Zamiast tego Bajtazar postanowił użyć ulubionego nośnika – płyt CD!

Izolacja jest najlepszą metodą bezpieczeństwa, dlatego na każdej płycie Bajtazar zapisze co najwyżej jeden program, niezależnie od tego ile wolnego miejsca miałoby zostać na płycie. Aby wygodnie korzystać z oprogramowania na nowym komputerze Bajtazar postanowił, że nie będzie dzielił programów na wiele płyt CD, to znaczy każdy program będzie zapisany w jednym kawałku na co najwyżej jednej płycie.

Każdy program zajmuje odpowiednią ilość miejsca i każda płyta ma też swoją pojemność. Oczywiście aby zapisać program na danej płycie ilość zajmowanego przez niego miejsca nie może być większa od pojemności płyty.

Być może Bajtazar nie zorientował się jeszcze, że może nie być stanie w ten sposób przenieść wszystkiego – oblicz, ile najwięcej programów będzie jest w stanie przenieść przestrzegając swoich zasad.

입력

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N (1 ≤ N ≤ 1 000 000) określająca liczbę programów. W drugim wierszu wejścia znajduje się N liczb naturalnych Ai (1 ≤ Ai ≤ 109) pooddzielanych pojedynczymi odstępami oznaczających rozmiary kolejnych programów w bajtach.

W trzecim wierszu wejścia znajduje się jedna liczba naturalna M (1 ≤ M ≤ 1 000 000), określająca liczbę płyt. W czwartym (ostatnim) wierszu wejścia znajduje się ciąg M liczb naturalnych Bi (1 ≤ Bi ≤ 109) pooddzielanych pojedynczymi odstępami oznaczających pojemności kolejnych płyt w bajtach.

출력

Twój program powinien wypisać na wyjście dokładnie jedną liczbę całkowitą oznaczającą największą możliwą liczbę programów, którą da się przenieść na płytach zgodnie z zasadami Bajtazara.

예제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