目录
Description
有两个偶数 \(x\ y\),满足 \(n\%x=y\%n\),求满足条件的任意 \(n\)
State
\(2<=x,y<=10^9\)
Input
4
4 8
4 2
420 420
69420 42068
Output
4
10
420
9969128
Solution
当 \(x=y\) 时, \(n=x\)
当 \(x>y\) 时,如果 \(n>y\),那么式子左边,也就是 \(y\%n=y\),易推出 \(n=kx+y\)
当 \(x<y\) 时,这个直推式子就比较麻烦了,但是可以确定 \(n\) 的范围 \([x,y]\),当 \(y=kx\) 时,\(x=y\);
同时也可以确定余数 \(r\) 的范围 \([0,x)\),假设 \(kx<y<(k+1)x\),那么 \(n=\frac{kx+y}{2}\),这里建议大家画一下图
Code
signed main()
{
// IOS;
rush(){
ll x, y;
sll2(x, y);
if(x == y){
pll(x);
}
else if(x > y){
pll(x + y);
}
else{
ll ans = x;
if(y % x){
ll k = y / x;
ans = k * x + (y - k * x) / 2;
}
pll(ans);
}
}
// PAUSE;
return 0;
}