CF1503D Flip the Cards

题目描述

有一副包含 $n$ 张牌的牌堆。第 $i$ 张牌的正面数字为 $a_i$,背面数字为 $b_i$。所有 $1$ 到 $2n$ 的整数在这些牌上恰好各出现一次。 如果一副牌的所有正面数字严格递增,且所有背面数字严格递减,即对于所有 $1\le i b_{i+1}$,则称这副牌是有序的。 你可以选择翻转任意一些牌(也可以一张都不翻),翻转第 $i$ 张牌即交换 $a_i$ 和 $b_i$ 的值。然后,你可以以任意顺序重新排列所有牌。请问,最少需要翻转多少张牌,才能使牌堆有序?

输入格式

第一行包含一个整数 $n$($1\le n\le 2\cdot 10^5$),表示牌的数量。 接下来的 $n$ 行,每行包含两个整数 $a_i, b_i$($1\le a_i, b_i\le 2n$)。所有 $1$ 到 $2n$ 的整数恰好各出现一次。

输出格式

如果无法将牌堆排序,输出 $-1$。否则,输出最少需要翻转的牌数。

说明/提示

在第一个测试样例中,我们翻转了 $(1,9)$ 和 $(2,7)$ 这两张牌。此时牌堆可以排列为 $(3,10), (5,8), (6,4), (7,2), (9,1)$。此时 $31$,满足有序条件。 在第二个测试样例中,无法将牌堆排序。 由 ChatGPT 4.1 翻译