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 翻译