QOJ.ac

QOJ

Time Limit: 0.5 s Memory Limit: 2048 MB Total points: 100

#3589. 投资的钱

Statistics

如今,你的编程技能非常出色,经常能通过工作获得丰厚的报酬。遗憾的是,你的理财能力并没有同步提升。因此,每当你赚到钱时,你只会简单地将其存入银行,办理一份带有自动续存条款的 30 天定期存款。这意味着在存入资金 30 天后,该笔资金会自动续存 30 天,如此循环往复,直到你通知银行停止续存并取回本金。定期存款不能在周末创建或续存;如果 30 天的周期在周末结束,续存将顺延至紧随其后的周一进行。

由于银行保管着你几乎所有的钱,每当你想要购买除日常饮食以外的任何东西时,都必须等待最近的一次续存日期。今天,你决定购买一部新智能手机来替换你那部已经用了六个月的旧设备。给定你创建每一笔定期存款的日期,你必须确定为了从银行取钱,你最少需要等待的天数。

举个例子,假设今天是星期六,你创建了五笔定期存款:一笔在上周一,一笔在上周二,一笔在上周三,还有两笔在昨天。第一笔存款(周一)将在 25 天后(即周三)续存。第二笔存款(周二)将在 26 天后(即周四)续存。第三笔存款(周三)将在 27 天后(即周五)续存。最后,最后两笔存款(周五)将在 30 天后(即周一)续存,因为不允许在周日进行续存。因此,在这种情况下,你必须等待 25 天才能从银行取到钱。

输入格式

第一行包含一个字符串 $T$ 和一个整数 $N$ ($1 \le N \le 10^5$),分别表示今天的星期几和定期存款的数量。字符串为 “Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat” 或 “Sun” 之一,分别代表今天是星期一、星期二、星期三、星期四、星期五、星期六或星期日。第二行包含 $N$ 个整数 $D_1, D_2, \dots, D_N$ ($0 \le D_i \le 10^9$,对于 $i = 1, 2, \dots, N$),表示自每笔定期存款创建以来经过的天数。保证定期存款不是在周末创建的。

输出格式

输出一行,包含一个整数,表示你为了从银行取钱所必须等待的最少天数。

样例

样例输入 1

Sat 5
5 4 3 1 1

样例输出 1

25

样例输入 2

Sat 5
3 1 4 1 5

样例输出 2

25

样例输入 3

Thu 1
0

样例输出 3

32

样例输入 4

Thu 1
30

样例输出 4

0

样例输入 5

Fri 1
31

样例输出 5

31

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.