题意:
给定两个数x,y,让你构造一个n使得n%x=y%n
其中1<=n<=2e18
思路:
因为是构造,考虑使条件特殊化
分类讨论
当x<y时,直接让n=x+y即可
否则就是考虑几何意义
(感觉CF的数论题都是考比较灵性的东西而不是算法)
直接取y-y%x/2即可
Code:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mxn=2e5+10;
int x,y;
void solve(){
cin>>x>>y;
if(x>y) cout<<x+y<<'\n';
else cout<<y-y%x/2<<'\n';
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int __=1;cin>>__;
while(__--)solve();return 0;
}