QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 256 MB 満点: 100

#12789. 车库

統計

一个停车场有 $N$ 个停车位,编号从 $1$ 到 $N$。停车场每天早上清空,全天按以下方式运作:每当有车到达停车场时,管理员会检查是否有空闲的停车位。如果没有,车辆就在入口处等待,直到有停车位空出。如果有空闲的停车位,或者一旦有停车位空出,车辆就会停入该空位。如果有多个空闲的停车位,车辆将停在编号最小的那个车位。如果某辆车在等待时又有其他车辆到达,它们会按到达的先后顺序在入口处排队。随后,当有停车位空出时,队列中的第一辆车(即最早到达的那辆)会停入该车位。

停车费用(以美元计)为车辆重量(以千克计)乘以该停车位的特定费率。费用与车辆在停车场停留的时间长短无关。

停车场管理员知道今天会有 $M$ 辆车到来,并且他知道这些车辆到达和离开的顺序。请帮助他计算今天停车场总共能获得多少美元的收入。

题目描述

编写一个程序,给定停车位的特定费率、车辆的重量以及车辆到达和离开的顺序,计算停车场总共获得的美元收入。

数据范围

$1 \le N \le 100$ 停车位数量 $1 \le M \le 2,000$ 车辆数量 $1 \le R_s \le 100$ 停车位 $s$ 的费率(美元/千克) $1 \le W_k \le 10,000$ 车辆 $k$ 的重量(千克)

输入格式

程序必须从标准输入读取以下数据: 第一行包含两个整数 $N$ 和 $M$,用空格分隔。 接下来的 $N$ 行描述停车位的费率。其中第 $s$ 行包含一个整数 $R_s$,表示编号为 $s$ 的停车位的费率(美元/千克)。 接下来的 $M$ 行描述车辆的重量。车辆编号为 $1$ 到 $M$,顺序不固定。其中第 $k$ 行包含一个整数 $W_k$,表示编号为 $k$ 的车辆的重量(千克)。 接下来的 $2 \times M$ 行按时间顺序描述所有车辆的到达和离开情况。正整数 $i$ 表示编号为 $i$ 的车辆到达停车场。负整数 $-i$ 表示编号为 $i$ 的车辆离开停车场。没有车辆会在到达之前离开,且从 $1$ 到 $M$ 的所有车辆都会在该序列中恰好出现两次,一次到达,一次离开。此外,没有车辆会在停入车位前离开(即没有车辆会在队列中等待时离开)。

输出格式

程序必须向标准输出写入一行,包含一个整数:停车场管理员今天总共获得的美元收入。

子任务

对于总分 $40$ 分的测试用例,每辆到达的车辆总会有至少一个空闲的停车位。在这些情况下,车辆无需等待。

样例

输入 1

3 4
2
3
5
200
100
300
800
3
2
-3
1
4
-4
-2
-1

输出 1

5300

说明 1

编号为 $3$ 的车停在 $1$ 号车位,支付 $300 \times 2 = 600$ 美元。 编号为 $2$ 的车停在 $2$ 号车位,支付 $100 \times 3 = 300$ 美元。 编号为 $1$ 的车停在 $1$ 号车位(由编号为 $3$ 的车空出),支付 $200 \times 2 = 400$ 美元。 编号为 $4$ 的车停在 $3$ 号车位(最后一个剩余车位),支付 $800 \times 5 = 4,000$ 美元。

输入 2

2 4
5
2
100
500
1000
2000
3
1
2
4
-1
-3
-2
-4

输出 2

16200

说明 2

编号为 $3$ 的车停在 $1$ 号车位,支付 $1,000 \times 5 = 5,000$ 美元。 编号为 $1$ 的车停在 $2$ 号车位,支付 $100 \times 2 = 200$ 美元。 编号为 $2$ 的车到达,必须在入口处等待。 编号为 $4$ 的车到达,必须在编号为 $2$ 的车后在入口处等待。 当编号为 $1$ 的车离开其停车位时,编号为 $2$ 的车停入该车位,支付 $500 \times 2 = 1,000$ 美元。 当编号为 $3$ 的车离开其停车位时,编号为 $4$ 的车停入该车位,支付 $2,000 \times 5 = 10,000$ 美元。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.