C. Lucky Days
code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const double PI = acos(-1), eps = 1e-8;
const int INF = 0x3f3f3f3f, MOD = 1e9 + 7;
const int M = 2e6 + 10, N = 2e5 + 10;
int sgn(double x) {
if(fabs(x) < eps) return 0;
return x < 0? -1: 1;
}
struct node {
int l, r, t;
}a, b;
int _gcd;
void init() {
}
void solve() {
int res = 0;
int t = (a.l - b.l)/_gcd;
b.l += t * _gcd, b.r += t * _gcd;
res = min(b.r - a.l + 1, a.r - a.l + 1);
b.l += _gcd, b.r += _gcd;
res = max(res, min(b.r - b.l + 1, a.r - b.l + 1));
cout << (res >= 0? res: 0) << endl;
}
int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(nullptr);
#ifdef ACM_LOCAL
freopen("input", "r", stdin);
freopen("output", "w", stdout);
#endif
init();
int o = 1;
while(o --) {
cin >> a.l >> a.r >> a.t;
cin >> b.l >> b.r >> b.t;
if(a.l < b.l) swap(a, b);
_gcd = __gcd(a.t, b.t);
solve();
}
return 0;
}