AT_arc010_2 [ARC010B] 超大型連休
题目描述
2011 年,AtCoder 国的高桥首相做出了一个重大决定。
这个决定就是……修改法律。通过修改关于国民节日的法律,增加了假期!!
尊重国民创造性的这一决定,使得霞关变成了魔境!
你是霞关国土交通省的职员,这次法改后,上司给你分配了新的任务。
这个任务就是,计算 2012 年“连续假期的最大天数”。
提前计算连续假期的长度,可以预测国民的行动,从而对高速公路进行部分降价,促进经济发展。
因此,你绝不能失败,否则就无法准确预测国民的行为。
下面给出“连续假期”的定义及相关注意事项。
1. AtCoder 国使用的历法遵循[格里高利历](http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6)。
2. “连续假期”是指“假日”连续出现的天数。
3. “星期六”“星期日”“节日”“补休日”都属于“假日”。
4. 如果“节日”与其他假日落在同一天,必须设置“补休日”。
5. “补休日”按节日的时间顺序依次确定,为该节日之后最近的工作日(不包括假日)。
6. 2012 年 1 月 1 日是星期日。
输入格式如下,从标准输入读取。 > N m₁/d₁ m₂/d₂ : : mₙ/dₙ
- 第 1 行给出节日的数量 N,满足 0≤N≤366。
- 第 2 行到第 N+1 行,每行给出一个节日的日期。
1. mᵢ 是第 i (1≤i≤366) 个节日的月份,满足 1≤mᵢ≤12。
2. dᵢ 是第 i (1≤i≤366) 个节日的日期,
1. 若 mᵢ=2,1≤dᵢ≤29。
2. 若 mᵢ∈{4,6,9,11},1≤dᵢ≤30。
3. 若 mᵢ∈{1,3,5,7,8,10,12},1≤dᵢ≤31。
3. mᵢ 和 dᵢ 都是整数。
4. mᵢ 和 dᵢ 必须用 `/` 分隔。
5. 节日的输入顺序不一定按时间顺序,但保证不会有重复的日期。
请输出法改后 2012 年连续假期的最大天数。
输出到标准输出,末尾需换行。
```
1
1/9
```
```
3
```
- 1/7(周六)、1/8(周日)、1/9(周一)的 3 天连休是最长的。
```
1
1/10
```
```
2
```
- 1/10(周二)是节日,1/7(周六)、1/8(周日)等 2 天连休是最长的。
```
1
1/7
```
```
3
```
- 1/7 是周六,因此最近的工作日 1/9 作为补休日。
- 所以 1/7(周六)、1/8(周日)、1/9(周一)的 3 天连休是最长的。
```
2
1/7
1/9
```
```
4
```
- 1/7 是周六,因此需要设置补休日,1/9 是节日,所以 1/10 作为补休日。
- 所以 1/7(周六)、1/8(周日)、1/9(周一)、1/10(周二)的 4 天连休是最长的。
输入格式
第 1 行包含一个整数 $N$,表示节日的数量。
接下来 $N$ 行,每行一个字符串 $m_i/d_i$,表示节日的日期。
输出格式
输出 2012 年连续假期的最大天数。输出后需换行。
说明/提示
由 ChatGPT 4.1 翻译