아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

불소 도포 선생님

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

요약
값 a_i가 주어질 때 a_i=0인 비에른이 원하는 위치로 이동할 수 있다. 합 i*a_i를 최대로 만드는 값을 구한다.
난이도

보통10점 중 5점

유형
배열, 누적 합, 그리디, 구현
정답자
아직 제출이 없습니다

문제

Björn과 나머지 n−1n-1명이 불소 도포 선생님을 만나기 위해 줄을 서 있다. 사람마다 불소 도포 선생님을 만나는 것이 얼마나 무서운지가 다르다. 사람들은 11부터 nn까지 번호가 매겨져 있고, ii번 사람은 줄의 ii번째 자리에 서 있다. ii번 사람은 또 하나의 값 a_ia\_i를 가지는데, 이는 그 사람이 불소 도포 선생님을 만나기를 얼마나 꺼리는지를 나타낸다. ii번 사람이 자기 자리에서 느끼는 기쁨은 i⋅a_ii \cdot a\_i이다. a_ia\_i가 음수인 사람도 있는데, 이는 그 사람이 사실은 불소 도포 선생님을 만나고 싶어 하므로 기다리는 것을 슬퍼한다는 뜻이다.

Björn은 불소 도포 선생님을 만나는 것에 완전히 무관심한 유일한 사람, 즉 a_i=0a\_i = 0인 유일한 사람이다. 게다가 그는 매우 마음이 착해서, 줄에서 나왔다가 다시 줄의 어떤 자리에 들어가서 줄에 있는 모든 사람의 기쁨의 합이 최대가 되도록 하려 한다. 모든 사람의 a_ia\_i 값이 주어질 때, Björn이 최적의 자리에 섰을 때 줄의 기쁨 합의 최댓값을 계산하는 프로그램을 작성하시오.

입력

첫째 줄에는 줄에 있는 사람 수를 나타내는 정수 nn이 주어진다. 다음 줄에는 nn개의 정수가 주어지며, ii번째 정수는 a_ia\_i이다. 1≤n≤1061 \leq n \leq 10^6, −1000≤a_i≤1000-1000 \leq a\_i \leq 1000.

출력

줄의 최대 총 기쁨을 나타내는 정수 하나를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    1 0 -2
    
    예상 출력
    -3
    
  2. 예제 2

    입력
    5
    0 -8 1 1 5
    
    예상 출력
    24
    
  3. 예제 3

    입력
    7
    2 -4 5 -3 0 -1 2
    
    예상 출력
    7