포럼
문제 USACO0331

레모네이드 줄

설명

농장의 무더운 여름날, 농부 존이 \(N\)마리의 소들에게 레모네이드를 나눠 주고 있다! \(N\)마리의 소들(편의상 \(1 \dots N\)으로 번호가 매겨져 있다)은 모두 레모네이드를 좋아하지만, 그중에는 유독 더 좋아하는 소들도 있다. 구체적으로, 소 \(i\)는 레모네이드를 받기 위해 최대 \(w_i\)마리의 소 뒤에 줄을 서서 기다릴 의향이 있다. 지금은 \(N\)마리의 소가 모두 들판에 있지만, 농부 존이 워낭을 울리는 순간 소들은 즉시 농부 존의 레모네이드 가판대로 몰려올 것이다. 소들은 모두 농부 존이 레모네이드를 나눠 주기 시작하기 전에 도착하지만, 어떤 두 소도 동시에 도착하지는 않는다. 또한 소 \(i\)는 도착했을 때 이미 줄에 서 있는 소가 \(w_i\)마리 이하일 때, 그리고 그때에만 줄에 선다.

농부 존은 레모네이드를 미리 어느 정도 준비해 두고 싶지만, 낭비하고 싶지는 않다. 줄에 서는 소의 수는 소들이 도착하는 순서에 따라 달라질 수 있다. 줄에 서는 소의 수의 최솟값을 구하도록 도와주자.

출제자: Dhruv Rohatgi

제약

출제자: Dhruv Rohatgi

입력 형식

첫째 줄에 \(N\)이 주어지고, 둘째 줄에 공백으로 구분된 정수 \(N\)\(w_1, w_2, \dots, w_N\)이 주어진다. \(1 \leq N \leq 10^5\)이고, 각 소 \(i\)에 대해 \(0 \leq w_i \leq 10^9\)임이 보장된다.

출력 형식

소들이 도착할 수 있는 모든 순서 가운데, 줄에 서게 될 수 있는 소의 수의 최솟값을 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 lemonade.in · 출력을 쓸 파일 lemonade.out
예제 1
입력
5
7 1 400 2 2
출력
3
설명

In this setting, only three cows might end up in line (and this is the smallest
possible). Suppose the cows with \(w = 7\) and \(w = 400\) arrive first and wait in
line. Then the cow with \(w = 1\) arrives and turns away, since 2 cows are already
in line. The cows with \(w = 2\) then arrive, one staying and one turning away.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2017-2018 > US Open > Silver

태그

평가 및 의견

Lemonade Line

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

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

풀이 제출

Lemonade Line

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (lemonade.in / lemonade.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8