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

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

Elektrownie i fabryki

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

요약
인접한 도시 사이에 단위 길이 전선을 놓아 모든 공장의 전력 수요를 충족시키면서 총 길이를 최소화하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그리디, 스택, 배열
정답자
아직 제출이 없습니다

문제

Aby przeciwdziałać rosnącemu bezrobociu, rząd Bajtocji postanowił stworzyć nowe miejsca pracy. W tym celu wybudowane zostaną nowoczesne fabryki, a także nowe elektrownie, które będą zasilały fabryki w energię elektryczną.

Bajtocję przecina długa autostrada, przy której zlokalizowane jest n miast. Miasta dla uproszczenia będziemy numerować od 1 do n. Każde kolejne miasto jest oddalone od poprzedniego o jeden kilobajtometr.

Odpowiednie decyzje już zapadły i w niektórych miastach powstaną fabryki, a w niektórych elektrownie. Dla i-tego miasta znamy wartość ai. Jeśli jest ona dodatnia, to w i-tym mieście powstanie elektrownia o mocy elektrycznej ai megawatów, a jeśli jest ujemna, to w tym mieście powstanie fabryka konsumująca −ai megawatów. Jeśli ai = 0, to w mieście nie planuje się budowy.

Twoim zadaniem jest zaprojektowanie sieci energetycznej, która pozwoli dostarczyć prąd z elektrowni do fabryk. Dla każdej pary sąsiednich miast należy zdecydować, czy między nimi powstanie odcinek sieci. Prąd może popłynąć z elektrowni do fabryki, jeśli miasta, w których znajdują się te budynki, są bezpośrednio lub pośrednio połączone odcinkami sieci. Sieć jest poprawnie zaprojektowana, jeśli zapotrzebowanie na prąd dla każdej fabryki zostanie zaspokojone. Koszt sieci jest wprost proporcjonalny do sumarycznej długości odcinków sieci (w kilobajtometrach).

Napisz program, który zaprojektuje najtańszą poprawną sieć energetyczną.

입력

W pierwszym wierszu wejścia znajduje się liczba całkowita n (1 ≤ n ≤ 500 000), oznaczająca liczbę miast w Bajtocji.

W drugim wierszu znajduje się ciąg n liczb całkowitych a1, . . . , an (−109 ≤ ai ≤ 109) oznaczających produkcję lub konsumpcję energii w budynkach dla kolejnych miast.

출력

Na wyjściu należy wypisać jeden wiersz zawierający minimalny koszt poprawnej sieci energetycznej. Jeśli nie istnieje żadna poprawna sieć energetyczna, należy wypisać −1.

힌트

Wyjaśnienie przykładu: Poniżej zilustrowano test przykładowy zawierający n = 17 miast, w których zostaną wybudowane trzy fabryki (białe kółka) i cztery elektrownie (czarne kółka). Zaznaczono także poprawną sieć energetyczną o długości 12 kilobajtometrów (szare odcinki).

예제1

  1. 예제 1

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