알고리즘/코드포스-퍼플까지 도전기
[codeforce] #526 (Div. 2) A. The Fair Nut and Elevator
전태경
2018. 12. 14. 17:27
문제 링크 : http://codeforces.com/contest/1084/problem/A
문제 정리
- 어떤 엘레베이터는 작동하지 않을 때는 x 층에서 대기를 한다.
- 엘레베이터는 무조건 한 사람만 태우며, 1층으로 내려가고 다시 x층으로 복귀한다.
- 어떤 사람이 다시 집으로 귀가할 시에 x층에서 1층으로 내려가고 a층까지 작동한 뒤에 x층으로 복귀
- 엘레베이터는 한 층씩 내려갈 때마다 전력 1을 사용
- n개의 층에 사는 사람들의 수가 주어졌을때, 엘레베이터가 사용할 전력을 최소화 하기위한 x층을 정하라.
문제 풀이
[1... n] 층까지 x 를 정해보면서 전력이 최소일 때를 구한다.
각 층마다 예상 전력 = (층에 사는 사람 수) * ( |x - a| + |a - 1| + |x - 1| ) * ( 2 // 위아래로 반복하기 때문에// )
--> x 층 ~ a 층 ~ 1층 ~ x층으로 이동하기 때문
전체 전력 = ∑각 층마다 예상 전력
N제한이 100이기에 충분히 계산 가능