CF665B.Shopping
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Ayush is a cashier at the shopping center. Recently his department has started a ''click and collect" service which allows users to shop online.
The store contains k items. n customers have already used the above service. Each user paid for m items. Let a__ij denote the j-th item in the i-th person's order.
Due to the space limitations all the items are arranged in one single row. When Ayush receives the i-th order he will find one by one all the items a__ij (1 ≤ j ≤ m) in the row. Let pos(x) denote the position of the item x in the row at the moment of its collection. Then Ayush takes time equal to pos(_a__i_1) + pos(_a__i_2) + ... + pos(a__im) for the i-th customer.
When Ayush accesses the x-th element he keeps a new stock in the front of the row and takes away the x-th element. Thus the values are updating.
Your task is to calculate the total time it takes for Ayush to process all the orders.
You can assume that the market has endless stock.
阿尤什是购物中心的一名收银员。最近,他所在的部门推出了一项“线上下单,到店自提”(click and collect)服务,允许用户在线购物。
商店中共有 k 种商品。已有 n 位顾客使用了上述服务,每位顾客购买了 m 件商品。记 aij 表示第 i 位顾客订单中的第 j 件商品。
由于空间限制,所有商品被排列在同一行中。当阿尤什处理第 i 个订单时,他将依次在该行中查找所有商品 aij(其中 1≤j≤m)。设 pos(x) 表示在取走商品 x 当时,该商品在行中的位置(位置从左至右编号为 1,2,3,…)。则阿尤什为第 i 位顾客所花费的时间为
pos(ai1)+pos(ai2)+⋯+pos(aim).
每当阿尤什取走位于位置 x 的商品时,他会将一件相同的新商品插入到该行最前端(即位置 1),同时将原位置 x 上的商品移除。因此,整行商品的位置会随之动态更新。
你的任务是计算阿尤什处理全部 n 个订单所需的总时间。
你可以假设商场拥有无限库存。
输入格式
The first line contains three integers n, m and k (1 ≤ n, k ≤ 100, 1 ≤ m ≤ k) — the number of users, the number of items each user wants to buy and the total number of items at the market.
The next line contains k distinct integers p__l (1 ≤ p__l ≤ k) denoting the initial positions of the items in the store. The items are numbered with integers from 1 to k.
Each of the next n lines contains m distinct integers a__ij (1 ≤ a__ij ≤ k) — the order of the i-th person.
第一行包含三个整数 n、m 和 k(1 ≤ n, k ≤ 100,1 ≤ m ≤ k)—— 分别表示用户数量、每位用户想要购买的商品数量以及市场上商品的总数。
第二行包含 k 个互不相同的整数 pl(1 ≤ pl ≤ k),表示商店中各商品的初始位置。商品编号为 1 到 k 的整数。
接下来的 n 行中,每行包含 m 个互不相同的整数 aij(1 ≤ aij ≤ k)—— 表示第 i 位用户的商品购买顺序。
输出格式
Print the only integer t — the total time needed for Ayush to process all the orders.
输出唯一的整数 t —— Ayush 处理所有订单所需的总时间。
输入输出样例
输入#1
2 2 5 3 4 1 2 5 1 5 3 1
输出#1
14
说明/提示
Customer 1 wants the items 1 and 5.
pos(1) = 3, so the new positions are: [1, 3, 4, 2, 5].
pos(5) = 5, so the new positions are: [5, 1, 3, 4, 2].
Time taken for the first customer is 3 + 5 = 8.
Customer 2 wants the items 3 and 1.
pos(3) = 3, so the new positions are: [3, 5, 1, 4, 2].
pos(1) = 3, so the new positions are: [1, 3, 5, 4, 2].
Time taken for the second customer is 3 + 3 = 6.
Total time is 8 + 6 = 14.
Formally pos(x) is the index of x in the current row.
顾客 1 想要物品 1 和 5。
pos(1) = 3,因此新的位置序列为:[1, 3, 4, 2, 5]。
pos(5) = 5,因此新的位置序列为:[5, 1, 3, 4, 2]。
第一位顾客所用时间为 3 + 5 = 8。
顾客 2 想要物品 3 和 1。
pos(3) = 3,因此新的位置序列为:[3, 5, 1, 4, 2]。
pos(1) = 3,因此新的位置序列为:[1, 3, 5, 4, 2]。
第二位顾客所用时间为 3 + 3 = 6。
总时间为 8 + 6 = 14。
形式化地,pos(x) 表示 x 在当前序列中的下标(索引)。
输入解题思路,AI测评打分。不知道怎么写?