#L4034. 「CCO 2023」Line Town

「CCO 2023」Line Town

题目描述

译自 CCOCCO 20232023 Day1Day1 T3T3LineLine TownTown」。

线条小镇的 NN 个居民排成了一条线。最初,居民们从左到右沿着线的幸福值为 h1,h2,,hNh_1, h_2, \ldots, h_N

你是线条小镇的镇长,正在实施名为「社区、糖果和组织」(CCOCCO)的计划,因此拥有交换居民位置的权力。在一次交换中,你可以让两个相邻的居民交换他们在线中的位置,但这次交换会导致两个居民的幸福值取反。

你需要判断是否能通过若干次交换,使得居民的幸福值从左到右按非递减的顺序排列。如果可能,输出所需的最少交换次数;如果不可能,输出 1-1

输入格式

  • 第一行包含一个整数 NN
  • 第二行包含 NN 个整数 h1,,hNh_1, \ldots, h_N,表示从左到右的居民的幸福值。

输出格式

输出一行一个整数,表示最少的交换次数;如果任务不可能完成,输出 1-1

样例 1

输入

6
-2 7 -1 -8 2 8

输出

3

说明

可通过 33 次交换达成目标,过程如下:

  1. 交换第 22 和第 33 个居民,幸福值变为 [2,1,7,8,2,8][-2, 1, -7, -8, 2, 8]
  2. 交换第 44 和第 55 个居民,幸福值变为 [2,1,7,2,8,8][-2, 1, -7, -2, 8, 8]
  3. 交换第 33 和第 44 个居民,幸福值变为 [2,1,2,7,8,8][-2, 1, 2, 7, 8, 8]。 此时居民幸福值按非递减顺序排列,且不存在更少交换次数的方案。

样例 2

输入

4
1 -1 1 -1

输出

-1

说明

没有任何一系列交换能使居民的幸福值按非递减顺序排列。

数据范围与提示

  • 对于所有数据,1N5×1051 \leq N \leq 5 \times 10^5109hi109-10^9 \leq h_i \leq 10^9
  • 子任务信息如下:
子任务编号 分值 NN 的范围 额外限制
11 1212 1N20001 \leq N \leq 2000 对于所有的 iihi=1\vert h_i \vert=1
22 1N5×1051 \leq N \leq 5 \times 10^5
33 1N20001 \leq N \leq 2000 对于所有的 iihi1\vert h_i \vert \leq 1
44 1616 1N5×1051 \leq N \leq 5 \times 10^5
55 1N20001 \leq N \leq 2000 对于所有的 iji \neq jhihj\vert h_i \vert \neq \vert h_j \vert
66 1212 1N5×1051 \leq N \leq 5 \times 10^5
77 88 1N20001 \leq N \leq 2000 没有额外的限制
88 1212 1N5×1051 \leq N \leq 5 \times 10^5