포럼
문제 USACO0137

비행기 탑승

설명

FJ의 소들은 휴가를 가기로 했고, 기꺼이 표를 팔아 줄 항공사도 찾아냈다. 비행기에 탑승하기 시작하면서 소들은 흥미로운 문제에 부딪힌다.

비행기에는 N개의 좌석이 있으며, 이를 수직선 위의 점 x=1부터 x=N으로 모델링한다. N마리의 소(1 <= N <= 200,000)가 모두 줄을 서서 자리로 가기를 기다리고 있다. 소 N은 위치 x=0에, 소 N-1은 위치 x=-1에 서 있으며, 이런 식으로 이어진다. 소 i는 좌석 S_i를 배정받았는데, S_1,...,S_N은 1,...,N의 순열이다.

매 시간 단계마다 각 소는 가능하면 오른쪽으로 한 칸 이동한다. 소 i가 자신의 좌석 S_i에 도착하면 멈춰 서서 짐을 머리 위 선반에 넣는데, 여기에 T_i초가 걸리고, 그 후 자리에 앉는다. 그 T_i 단계 동안 바로 뒤의 소(있다면)는 앞으로 나아가지 못하고 막힌다. 그 뒤에 소들이 줄지어 있다면 그 줄 전체도 사실상 막히게 된다.

모든 소가 자리에 앉기까지 얼마나 걸리는가? 모든 소의 T_i의 합은 1,000,000,000보다 작다.

제약
입력 형식

첫째 줄: 정수 N 하나가 주어진다.

둘째 줄부터 N+1째 줄까지: 공백으로 구분된 두 정수 S_i와 T_i가 주어진다.

출력 형식

모든 소를 앉히는 데 걸리는 시간을 한 줄에 출력한다.

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:
입력을 읽을 파일 boarding.in · 출력을 쓸 파일 boarding.out
예제 1
입력
3
2 5
3 10
1 5
출력
19
설명

Output details: The total time is 1 + 5 + 3 + 10 = 19 seconds.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2013-2014 > February > Gold

태그

평가 및 의견

Airplane Boarding

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

Log in to rate problems.

개별 의견

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

풀이 제출

Airplane Boarding

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