ACM中的C题
题号:NC276073
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

此题为 C 题的简单版本,与 C 题有是否排序、交换元素限制以及数据范围的不同

有一个长度为 n 的数组 \{a_i\}
已知 \{a_i\} 无相同元素且已经从小到大排序
你可以多次交换任何相邻位置的2个元素
直到每个位置的元素和原来都不相同
若有解请输出最小交换次数,反之无解输出 -1


输入描述:

第一行输入一个正整数 n
第二行输入 n 个非负整数 \{a_i\}
1\le n\le 2× 10^5; ~0\le a_i\le 2× 10^9
数据保证 a_i 从小到大排列且无相同 a_i

输出描述:

一个整数表示结果
若有解,输出最小交换次数
反之,输出 -1
示例1

输入

复制
2
1 2

输出

复制
1

说明

交换第一和第二个元素
新数组变为 [2, 1]
显然一次交换后即可与原数组每一位均不相同
示例2

输入

复制
4
0 1 2 4

输出

复制
2