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

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

게임

면접 대비

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

요약
각 라운드가 점수 n에서 시작하고, 생성기가 낸 음이 아닌 정수를 점수가 음수가 되지 않을 때만 빼는 게임을 시뮬레이션하여 완료한 라운드 수와 마지막 점수를 구한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 배열, 누적 합
정답자
아직 제출이 없습니다

문제

Petya는 락다운 중에 지루해서 난수 생성기를 사용하는 새로운 1인용 게임을 만들었다.

게임은 여러 라운드로 이루어지고, 각 라운드는 한 번 이상의 이동으로 이루어진다. 게임이 진행되는 동안 Petya는 자신의 현재 점수를 기록한다.

각 라운드가 시작할 때 Petya의 점수는 nn이다. 매 이동마다 생성기가 음이 아닌 정수를 출력하고, Petya는 그 수를 현재 점수에서 빼려고 시도한다. 결과가 음이 아니면 그 결과를 새로운 점수로 삼고, 음수이면 결과를 무시하고 점수를 바꾸지 않는다. 예를 들어 현재 점수가 33이고 생성기가 22를 출력하면 Petya는 뺄셈을 수행해 점수가 11이 된다. 생성기 출력이 55이면 결과를 무시하고 점수는 33으로 남는다.

현재 이동 후의 점수가 00이면 라운드가 끝나고, 다음 이동이 시작될 때 Petya의 점수는 다시 nn이 된다.

락다운이 끝난 지 오래지만, Petya는 게임 전체에서 생성기가 출력한 kk개의 정수로 이루어진 종이를 우연히 발견했다. 그는 자신이 몇 라운드를 플레이했는지, 게임을 중단했을 때의 점수가 얼마였는지 궁금해한다. 종이에 적힌 기록을 이용해 알아내도록 도와주자.

입력

첫째 줄에는 두 정수 kk와 nn이 주어진다. kk는 Petya가 수행한 이동 수, nn은 각 라운드가 시작할 때의 점수이다(1≤k≤100 0001 \le k \le 100\,000, 1≤n≤1081 \le n \le 10^8).

둘째 줄에는 kk개의 정수가 주어진다. 이는 난수 생성기의 출력이다(0≤ai≤1080 \le a_i \le 10^8).

출력

첫째 줄에는 플레이한 라운드 수를 출력한다.

둘째 줄에는 게임이 끝났을 때의 점수를 출력한다.

게임의 마지막 이동이 라운드를 끝냈다면 Petya는 새 라운드를 시작하지 않았고, 점수는 00이다.

예제1

  1. 예제 1

    입력
    4 3
    1 2 4 1
    
    예상 출력
    1
    2