잔돈 싫어

면접 대비

시간 제한1초메모리 제한1024 MB

요약
환불 가능한 카드마다 환불액은 Ai에서 500을 뺀 값이고, 환불액 합이 500의 배수가 되도록 카드를 골라 합을 최대로 만든다.
난이도

보통10점 중 4점

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

문제

jwpassion1은 사용하지 않는 오래된 교통카드 여러장을 찾아 현금으로 환불받기로 하였다. jwpassion1은 500500원 동전이 필요한 리듬게임을 할 때 외에는 현금을 사용할 일이 없다. 그러나 하필 환불을 받을 금액이 500500으로 나눈 나머지가 정확히 490490이 되는 바람에 아무데도 쓸모없는 동전 99개가 생겨 곤란하게 되었다. 따라서 앞으로는 불필요한 동전이 생기지 않게 주의하려고 한다.

구체적으로 아래와 같은 규칙으로 교통카드를 환불받아야 한다.

  • 잔액이 20,00020\\,000원 이상인 교통카드는 환불이 불가능하다.
  • 환불 수수료는 500500원이다. 즉, ii번째 교통카드의 환불 금액은 정확히 A_i−500A\_i - 500원이 된다. 만약 A_i≤500A\_i \leq 500인 교통카드는 환불을 받는 것이 손해이기에 환불이 불가능하다.
  • 환불받은 금액의 합은 500500으로 나누어떨어져야 한다.

jwpassion1이 가지고 있는 교통카드의 개수와 각 교통카드의 잔액이 주어질 때 환불받을 수 있는 최대 금액을 구해라.

입력

첫째 줄에 교통카드의 개수를 나타내는 음이 아닌 정수 NN이 주어진다. (0≤N≤100,000)(0 \leq N \leq 100\\,000)

둘째 줄부터 NN개의 줄에 걸쳐 ii번째 교통카드의 잔액 A_iA\_i이 한 줄에 하나씩 주어진다. (0≤A_i≤100,000;(0 \leq A\_i \leq 100\\,000; A_iA\_i는 1010의 배수))

NN이 00인 경우에 입력은 첫째 줄만 주어진다.

출력

환불받을 수 있는 최대 금액을 출력한다.

환불받을 수 없다면 00을 출력한다.

힌트

jwpassion1은 실제로 교통카드를 환불하고 받은 490490원을 가지고있다.

예제4

  1. 예제 1

    입력
    5
    1000
    520
    450
    19500
    20000
    
    예상 출력
    19500
    
  2. 예제 2

    입력
    4
    600
    1100
    850
    950
    
    예상 출력
    1500
    
  3. 예제 3

    입력
    4
    990
    990
    990
    990
    
    예상 출력
    0
    
  4. 예제 4

    입력
    0
    
    예상 출력
    0