만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

라인 타운

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

요약
인접한 두 주민이 자리를 바꾸면 둘의 행복도 부호가 모두 바뀝니다. 행복도를 오름차순으로 만드는 최소 교환 횟수를 구하고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

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

문제

Line Town의 주민 NN명이 일렬로 서 있다. 처음에 주민들의 행복도는 왼쪽에서 오른쪽 순서로 h1,h2,…,hNh_{1}, h_{2}, \ldots, h_{N}이다.

당신은 Line Town의 시장으로서 "공동체, 사탕, 조직"(CCO) 계획의 세 번째 기둥을 시행하고 있다. 시장은 주민들의 자리를 바꿀 권한이 있다. 한 번의 교환에서 인접한 두 주민에게 줄 안에서 자리를 맞바꾸라고 지시할 수 있다. 다만 이 교환으로 두 주민의 행복도는 모두 부호가 바뀐다.

주민들의 행복도가 왼쪽에서 오른쪽으로 갈수록 작아지지 않도록 교환을 여러 번 수행하려 한다. 가능한지 판단하고, 가능하다면 필요한 교환 횟수의 최솟값을 구하라.

입력

첫째 줄에 정수 NN이 주어진다. 둘째 줄에는 왼쪽부터 오른쪽 순서로 주민들의 행복도 h1,…,hNh_{1}, \ldots, h_{N} (−109≤hi≤109)(-10^{9} \le h_{i} \le 10^{9})이 공백으로 구분되어 주어진다.

출력

한 줄에 교환 횟수의 최솟값을 출력한다. 불가능하면 -1을 출력한다.

제한

1≤N≤500 0001 \le N \le 500\,000

예제2

  1. 예제 1

    입력
    6
    -2 7 -1 -8 2 8
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4
    1 -1 1 -1
    
    예상 출력
    -1