qb#P10006. 手账里的「双生日」
手账里的「双生日」
故事背景
新年的第一天,你和朋友约好做一整年的「手账打卡」:每个月用一页纸记录好天气、心情和一张小照片。你们用的简约手账把一周的七天都用 1 到 这样的编号来标出来(比如 1 代表周一),而且这本手账的设计师很有个性——一周正好有 天,且 是个质数。
这本手账的一年总共有 个月,每个月有 天;新年第一天(1 月 1 日)印着「星期 1」。 你们约定了一个有点浪漫的规则:如果 第 月第 天刚好是星期 ,而同时第 月第 天刚好是星期 ,那么就把这两天配成一对「双生日」,在手账上彼此对贴同色的便签。我们用有序二元组 来表示这样的一对。
小贴士:允许 。这时两条记录其实指向同一天,也照样算作一对。
你的任务是:在这一整年里,一共有多少对「双生日」?
题目描述
给定多组数据。每组数据给出 的取值,含义如下:
- 一年有 个月;
- 每个月有 天;
- 一周有 天(并且 为质数),星期用 编号;
- 要求满足:
- 第 月第 天是星期 ,
- 第 月第 天是星期 。
其中 1 月 1 日为星期 1。请统计满足条件的有序对 的个数()。
输入格式
多组输入。
第一行一个整数 表示数据组数。 接下来 行,每行五个正整数 。
输出格式
输出共 行,每行一个整数,表示该组数据下「双生日」的对数。
样例
样例输入
3
4 5 7 2 3
5 4 3 1 1
114514 1919810 65537 824 127
样例输出
1
6
4
样例说明
- 对于第一组数据:2 月 4 日是星期 2,4 月 2 日是星期 3,所以 是一对双生日。
- 对于第二组数据:共有 6 对,分别为 。
说明与约定
- 星期从 1 数到 ,循环往复;1 月 1 日记作星期 1。
- 保证 是质数。
- 你只需要输出对数,不需要列出所有配对。
| 测试点编号 | 数据范围 |
|---|---|
| 适用于全部 | |
| 测试点 1 | |
| 测试点 2–3 | |
| 测试点 4–6 | ) |
| 测试点 7–8 | 在合法范围内随机生成(其余同全局约束) |
| 测试点 9–10 |