페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5103
서브태스크

동전 수집가 1s 128MB

문제

KOI국의 화폐 체계에는 1원짜리 동전을 포함하는 N개의 동전이 있다.

홍윤이는 KOI국에서 여행을 온 관광객이다.

홍윤이는 동전을 모으는 취미가 있어서 여행을 온 김에 KOI 국의 동전들을 종류별로 수집하기로 했다.

여행은 끝이 나고 이제 홍윤이는 공항 앞에서 마지막 쇼핑을 하기로 했다.

 

지금 홍윤이의 지갑에는 K원짜리 지폐 한 장이 들려있고 가게에는 1 \thicksim K-1원까지의 모든 물건이 있다.

(KOI국의 N종류의 동전 모두 K원보다 가치가 작다.)

홍윤이는 이미 몇 개의 동전을 모았고, 딱 하나의 물건을 사서 최대한 많은 종류의 동전을 집으로 가져가려 한다.

 

가게에서 물건을 사면 가게 주인은 다음과 같이 거스름돈을 줄 것이다.

 

1. 남은 거스름돈보다 작거나 같은 동전 중 가장 액수가 큰 동전을 지불한다.

2. 지불한 액수만큼 남은 거스름돈을 차감하고, 잔액이 0이 될 때까지 반복한다.

 

가령 1, 3, 7, 11원의 동전이 있고 홍윤이가 30원 지폐를 내서 15원짜리 물건을 구매했다고 하자.

이때 가게 주인은 15원의 거스름 돈을 11원, 3원, 1원의 동전으로 차례대로 지불한다.

 

N개의 동전과 K, 홍윤이가 이미 모은 동전들의 정보가 주어질 때 홍윤이가 최대한 동전을 많이 모으는 방법을 구해보자.


입력

첫 줄에 N, K가 주어진다. (1 \le N \le 500,000, 2 \le K \le 1 000,000,000)

이후 N줄에 걸쳐 i번째 줄에는 c_id_i가 주어진다.

이때 c_ii번째 동전의 가치이며, (c_1 = 1 < c_2 < ... < c_N < K)

첫 번째 동전의 가치는 항상 1임에 유의한다.

d_i는 홍윤이가 해당 동전을 이미 모았는 지의 여부로 이미 모았다면 1, 아니라면 0이다.

홍윤이는 반드시 하나의 물건을 구입한다.


출력

첫 줄에는 홍윤이가 K원 지폐를 사용해서 새로 얻을 수 있는 최대 동전의 종류 수를 출력하라.

두 번째 줄에는 홍윤이가 이를 위해서 구매해야 할 물건의 가격을 출력하라.

만약 답이 여러 가지라면 가능한 물건 중에서 가장 비싼 물건을 출력하라.


부분문제

번호 점수 조건
#130점

K <= 1,000

#270점

추가적인 제약 조건이 없다.


예제

7 25

1 0
2 0
3 1
5 0
10 0
13 0
20 0
3

6

출처

BOI 2006 day1

로그인해야 코드를 작성할 수 있어요.