SP7200 CAL - Strange Calendar

题目描述

在遥远的星系中,有一个名叫格林戈的星球,它与地球极为相似。这个星球同样有一个像“太阳”和“月亮”的天体。格林戈的人们使用了一种和我们非常相似的日历系统。据说,这种日历是几千年前由某位特别热爱编程的国王设计的。当时,他解决了一个极具挑战的问题后,心情愉快,决定创建新的日历来庆祝。于是,在他的日历中,那个满月的午夜被标记为第一秒。 在这个日历中,时间单位的名称和我们的一样,比如天、月、年、分钟和秒等。在格林戈星球上,绕着“太阳”转一圈的时间是 $T1$ 秒,满月之间的时间是 $T2$ 秒,两次午夜之间的时间是 $T3$ 秒。显然,一年有 $T1$ 秒,一天有 $T3$ 秒。庆幸的是,$T1$ 是 $T3$ 的倍数,因此不需要考虑闰年问题。 然而,$T2$ 可能不是 $T3$ 的倍数,这提出了一个难题。聪明的国王为此制定了如下几个规则: 1. 午夜过后,新的一天开始。 2. 当星球回到围绕“太阳”轨道的初始位置时,新的一年就启动。这会发生在午夜,并标志着新的一天的到来。 3. 如果某天会出现满月,那么新的一月也会开始。 4. 新年的开始也意味着新的一月到来,但此时月亮可能并非满月,因此这个月被称为“0月份”,直到再次出现满月为止。 5. 由于这些复杂的规则,计算每个月的天数成了一件难事。因此,许多格林戈的人向你寻求帮助。

输入格式

有若干组测试数据。第一行包含一个整数 $T$($T \leq 20$),表示测试数据的数量。接下来是 $T$ 组测试数据。每组测试数据之间用一个空行隔开。每组测试数据的第一行包含三个整数 $T1, T2, T3$($1 \leq T3 \leq 10000$,$5 \leq T1 / T3 \leq 1000$,确保 $T1$ 是 $T3$ 的倍数,$T3 < T2 < T1$)。接下来一行包含一个整数 $Q$($1 \leq Q \leq 100$)。接着有 $Q$ 行,每行包含两个整数 $Yi$ 和 $Mi$,表示第 $Yi$ 年的第 $Mi$ 个月($1 \leq Yi \leq 5000$,$0 \leq Mi \leq 5000$)。

输出格式

对于每个月,输出该月的天数。如果不存在这个月份,则输出 `0`。 **样例输入** ``` 1 3650 295 10 4 1 1 1 2 2 0 2 13 ``` **样例输出** ``` 29 30 18 0 ``` **本翻译由 AI 自动生成**