三科满分

题目背景

在学习基地里,乐柠兔负责整理噜噜的“满分日历”。噜噜有点奇怪:他在三门课上拿到满分的节奏各不相同——

  • 语文:每 25 天会出现一次“满分日”
  • 数学:每 29 天会出现一次“满分日”
  • 英语:每 37 天会出现一次“满分日”

由于三门课的周期长度不同,“三科同日满分”并不常见。乐柠兔想知道:从某一天之后开始,下一次“三科同日满分”还要等多久。

题目描述

从当年第一天开始计数,把这一天记为第 0 天。

已知四个整数 c、m、s、d

  • c:语文出现满分的某一天编号(不要求是第一次出现满分的那天)
  • m:数学出现满分的某一天编号
  • s:英语出现满分的某一天编号
  • d:你观察的“当前日子”编号

之后的规律如下:

  • 语文满分会出现在所有满足:天数 ≡ c (mod 25) 的日子;
  • 数学满分会出现在所有满足:天数 ≡ m (mod 29) 的日子;
  • 英语满分会出现在所有满足:天数 ≡ s (mod 37) 的日子。

你的任务是找到一个 严格大于 d 的最小天数 t,使得这一天三门课都恰好是“满分日”,并输出 t − d

特别注意:不允许把 d 当天算作答案,必须从 d 的下一天开始找。

输入格式

输入一行,包含四个整数 c, m, s, d,相邻整数之间以一个空格分隔。

输出格式

输出一个整数,表示从第 d 天之后到下一次“三科同日满分”的等待天数,即 t − d

样例

样例输入

5 6 7 8

样例输出

10322

数据范围与约定

对于 100% 的数据,保证:

  • 0c,m,s,d3650 ≤ c, m, s, d ≤ 365
  • 所求的答案 t − d 满足:1td268251 ≤ t − d ≤ 26825
子任务编号 分值 N 上限(所有输入的最大值)
1 20 30
2 30 100
3 365
4 20

相关

在下列比赛中:

「果壳杯」 ROUND 42 (Div. 5)