아르바이트생 강호

시간 제한2초메모리 제한256 MB

요약
N명의 고객이 정한 팁에서 받는 순서에 따라 (순서-1)만큼을 뺀 값(음수면 0)의 합을 최대화하는 배열 순서를 구하는 문제입니다.
난이도

어려움10점 중 8점

유형
그리디, 힙, 정렬, 수학
정답자
아직 제출이 없습니다

문제

스타박스는 오전 8시까지 손님들을 문 앞에 줄 세워 둔다. 오전 8시가 되면 손님들은 입구에서 커피를 하나씩 받고 자리로 간다. 강호는 입구에서 손님들에게 커피를 나누어 주는 일을 한다.

각 손님은 자신이 커피를 몇 번째로 받는지에 따라 강호에게 주는 팁이 달라진다. 어떤 손님이 원래 주려고 한 팁이 t원이고 그 손님이 r번째로 커피를 받는다면, 실제 팁은 t - (r - 1)원이다. 이 값이 음수이면 팁은 0원으로 처리한다.

예를 들어 세 손님이 각각 3원, 2원, 1원을 주려고 하고, 그 순서대로 커피를 받는다면 실제 팁은 3원, 1원, 0원이 되어 총 4원을 받는다.

N명의 손님과 각 손님이 원래 주려고 한 팁이 주어진다. 손님들의 순서를 적절히 정했을 때, 강호가 받을 수 있는 팁의 최댓값을 구하라.

입력

첫째 줄에 손님의 수 N이 주어진다. N은 100,000 이하의 자연수이다.

둘째 줄부터 N개의 줄에는 각 손님이 원래 주려고 하는 팁이 하나씩 주어진다. 각 팁은 100,000 이하의 자연수이다.

출력

강호가 받을 수 있는 팁의 최댓값을 출력한다.

예제5

  1. 예제 1

    입력
    4
    3
    3
    3
    3
    
    예상 출력
    6
    
  2. 예제 2

    입력
    3
    3
    2
    3
    
    예상 출력
    5
    
  3. 예제 3

    입력
    5
    7
    8
    6
    9
    10
    
    예상 출력
    30
    
  4. 예제 4

    입력
    5
    1
    1
    1
    1
    2
    
    예상 출력
    2
    
  5. 예제 5

    입력
    3
    1
    2
    3
    
    예상 출력
    4