#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll; // 定义 long long 为 ll,防止大数相乘溢出(数据最大 2e9,相乘达 4e18,必须用 64 位)
// ---------- 全局变量 ----------
ll x, y, m, n, l; // x:A起点, y:B起点, m:A步长, n:B步长, l:纬度总长(模数)
ll k, r, a, b; // k:整数圈数(未使用), r:最大公约数, a:初始差距, b:相对速度
int xx, yy; // 【注意隐患】这里声明为 int,但扩展欧几里得算出的系数可能极大,建议改为 ll
// 若按原代码,极端数据下 xx 或 yy 可能溢出 int,这里保持原样讲解,实战建议改成 ll
// ---------- 扩展欧几里得算法(核心) ----------
// 函数功能:求 a,b 的最大公约数 g,并求出一组整数解 (xx, yy),使得 axx + byy = g
ll gcd(ll a, ll b, int &xx, int &yy) // 注意这里传的是 int 引用,接收全局的 xx,yy
{
// 递归边界:欧几里得算法的终点,此时 b == 0
if(b == 0)
{
// 此时等式变为 a * xx + 0 * yy = a
// 显然取 xx = 1, yy = 0 即可使等式成立 (1*a + 0 = a)
xx = 1;
yy = 0;
return a; // 返回最大公约数 a
}
}
// ---------- 主函数 ----------
int main()
{
// 1. 读入五个整数
scanf("%lld%lld%lld%lld%lld", &x, &y, &m, &n, &l);
}