CF1130B Two Cakes
题目描述
Sasha 和 Dima 想要购买两个 $n$ 层的蛋糕。每个蛋糕应由 $n$ 个不同大小的蛋糕层组成,大小从 $1$ 到 $n$。蛋糕层应按照从小到大的顺序堆叠(从上到下)。
他们住在同一条街上,街上从左到右有 $2 \cdot n$ 间房屋。每间房屋都有一家糕点店,你可以在这里购买一个蛋糕层。不幸的是,每家糕点店只能买到一种特定大小的蛋糕层:在第 $i$ 间房屋你只能买到大小为 $a_i$ 的蛋糕层($1 \le a_i \le n$)。
由于他们已经携带了之前买到的蛋糕层,无法在蛋糕中间插入新的蛋糕层,因此他们约定必须按照从小到大的顺序购买蛋糕层。也就是说,他们每个人都要依次购买 $1$、$2$、$3$,直到 $n$ 大小的蛋糕层。
一开始,Sasha 和 Dima 都站在最左边的第一间房屋旁。请输出他们购买完两个蛋糕所需行走的最小总距离。相邻两间房屋之间的距离恰好为 $1$。
输入格式
第一行输入一个整数 $n$,表示每个蛋糕的层数($1 \le n \le 10^5$)。
第二行输入 $2 \cdot n$ 个整数 $a_1, a_2, \dots, a_{2n}$($1 \le a_i \le n$),其中 $a_i$ 表示在第 $i$ 间房屋可以买到的蛋糕层的大小。保证 $a$ 中每个 $1$ 到 $n$ 的数字恰好出现两次。
输出格式
输出一个整数,表示两人购买完两个蛋糕所需行走的最小总距离。两人可以同时站在同一间房屋旁。他们都从最左边的第一间房屋出发。每个人都要按蛋糕层大小递增的顺序购买 $n$ 个蛋糕层。
说明/提示
在第一个样例中,可能的最优操作顺序为:
- Sasha 在第 $1$ 间房屋($a_1=1$)购买大小为 $1$ 的蛋糕层;
- Dima 走到第 $2$ 间房屋;
- Dima 在第 $2$ 间房屋($a_2=1$)购买大小为 $1$ 的蛋糕层;
- Sasha 走到第 $4$ 间房屋;
- Sasha 在第 $4$ 间房屋($a_4=2$)购买大小为 $2$ 的蛋糕层;
- Sasha 走到第 $5$ 间房屋;
- Sasha 在第 $5$ 间房屋($a_5=3$)购买大小为 $3$ 的蛋糕层;
- Dima 走到第 $3$ 间房屋;
- Dima 在第 $3$ 间房屋($a_3=2$)购买大小为 $2$ 的蛋糕层;
- Dima 走到第 $6$ 间房屋;
- Dima 在第 $6$ 间房屋($a_6=3$)购买大小为 $3$ 的蛋糕层。
因此,Sasha 总共走了 $3+1=4$,Dima 总共走了 $1+1+3=5$。两人合计行走距离为 $4+5=9$。可以验证,任何其他操作顺序都不会使总距离更小。
由 ChatGPT 4.1 翻译