#include <iostream> using namespace std; int p[100005], nxt[100005], pre[100005], d[100005]; // 定义四个整数数组,用于存储数据 int main() { int n; long long ans; // 定义整数n和长整型ans,n表示数组长度,ans用于存储结果 cin >> n; // 从标准输入读取一个整数,赋值给n for (int i = 1; i <= n; i++) { cin >> p[i]; // 循环读取n个整数,存储到数组p中 } for (int i = 1; i <= n; i++) { nxt[p[i]] = p[i + 1]; pre[p[i]] = p[i - 1]; // 根据数组p,构建后继和前驱的关系,存储到数组nxt和pre中 } for (int i = 1; i <= n; i++) { cin >> d[i]; // 循环读取n个整数,存储到数组d中,表示每个元素要移动到的位置 } ans = 0; // 将ans初始化为0,用于存储结果 for (int i = 1; i <= n; i++) { ans += pre[d[i]] + nxt[d[i]]; nxt[pre[d[i]]] = nxt[d[i]]; pre[nxt[d[i]]] = pre[d[i]]; // 对每个元素进行操作:将其前驱和后继分别移动到它们的新位置,并更新答案ans } cout << ans << endl; // 输出结果ans return 0; }
标签:存储,int,整数,100005,数组,ans,经验值 From: https://www.cnblogs.com/iswuyi/p/17962449