#P16236. [2026保加利亚国家扩展队训练赛女队]Shoes鞋子
[2026保加利亚国家扩展队训练赛女队]Shoes鞋子
题目描述
Momo 喜欢把物品整理得井井有条。他有 双鞋,每双鞋包含一只左鞋和一只右鞋,且两只鞋的尺码相同。
现在, 只鞋被打乱后排成一列,位置从左到右编号为 。
若对于每个 (),都满足:
- 位置 和 上的鞋尺码相同;
- 位置 上是左鞋,位置 上是右鞋;
则称该序列已经整理好。
Momo 每次可以交换一对相邻位置上的鞋。请计算把鞋子整理好所需的最少交换次数。题目保证一定可以完成整理。
输入格式
第一行包含整数 ,表示鞋子的双数。
第二行包含 个非零整数 :
- 鞋子的尺码为 ;
- 若 ,该鞋是左鞋;
- 若 ,该鞋是右鞋。
输出格式
输出一个整数,表示整理好所有鞋子所需的最少相邻交换次数。
数据范围
- ;
- 。
子任务
| 子任务 | 分值 | 依赖子任务 | 限制 |
|---|---|---|---|
| 0 | 无 | 样例 | |
| 1 | 10 | ||
| 2 | 20 | 0~1 | |
| 3 | 无 | ,所有鞋的尺码相同 | |
| 4 | 15 | ;前 只全为左鞋,后 只全为右鞋,且位置 与 的鞋尺码相同 | |
| 5 | 20 | 0~2 | |
| 6 | 15 | 0~5 | ,无额外限制 |
只有通过某子任务及其所有依赖子任务的全部测试,才能获得该子任务的分数。
样例 1
输入
2
2 1 -1 -2
输出
4
一种最优过程最终得到:
-2 2 -1 1
最少需要 次相邻交换。
样例 2
输入
3
-2 2 2 -2 -2 2
输出
1
交换原序列中位置 和位置 的鞋,即可得到:
-2 2 -2 2 -2 2