RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00131

나무 자르기

Silver III 실버 III
난이도
1s
시간 제한
256MB
메모리 제한
1
맞았습니다!!
2
제출 수
50.0%
정답률
레이팅

의견: 0

설명

목재상이 나무를 베어 정확히 \(M\)미터 이상의 목재를 얻으려 한다. 절단기는 높이 \(H\)로 설정되어, \(H\)보다 높은 나무는 \(H\) 위쪽 부분이 잘려 나가고, \(H\) 이하인 나무는 그대로 둔다. 예를 들어 높이가 \(20, 15, 10, 17\) 인 나무를 \(H = 15\) 로 자르면 각각 \(5, 0, 0, 2\) 만큼의 목재를 얻어 총 \(7\)미터이다.

\(M\)미터 이상의 목재를 얻으면서 절단기 높이 \(H\)를 최대로 하고 싶다. 가능한 \(H\)의 최댓값을 출력하여라.

제약
  • \(1 \le N \le 100\,000\)
  • \(1 \le M \le 2\,000\,000\,000\)
  • 각 나무의 높이는 \(1\) 이상 \(1\,000\,000\,000\) 이하
  • 항상 \(M\)미터를 얻을 수 있는 입력만 주어진다
입력 형식

첫째 줄에 나무의 수 \(N\)과 필요한 목재 길이 \(M\)이 공백으로 구분되어 주어진다.

둘째 줄에 \(N\)개의 나무 높이가 공백으로 구분되어 주어진다.

출력 형식

조건을 만족하는 절단기 높이의 최댓값을 한 줄에 출력한다.

예제 1
입력
4 7
20 15 10 17
출력
15
설명

H=15로 자르면 5+0+0+2=7미터를 얻을 수 있고, 이보다 높이면 7미터를 채울 수 없다.

예제 2
입력
5 20
4 42 40 26 46
출력
36
설명

H=36일 때 6+4+0+0+10=20미터로 정확히 채워지며 H의 최댓값이다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

나무 자르기

개요
출제자 난이도 Silver III 실버 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

나무 자르기

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8