作者:whiston潘_931 | 来源:互联网 | 2023-09-16 18:52
原题链接
题意:让你选出一个n,使得对于给出的x,y,n % x = y % n。
思路:首先对于x > y,易得出直接输出 x + y即可。
我们讨论x <&#61; y时的情况。
首先直接列式子列了半天也没列出个所以然来&#xff0c;因为式子里面有%不好处理&#xff0c;于是我们把问题转化为x轴上的问题。
因为n % x &#61; y % n且x <&#61; y&#xff0c;那么x <&#61; n <&#61; y。
因此我们取这个px ~ y的中点即可使得 n % x &#61; y % n~
也就是y - y % x / 2。
#include
#include
#include
#include
#include
#include
#include
#include using namespace std;
#define endl &#39;\n&#39;
#define int long long
void solve(){int x,y;cin >> x >> y;if (x > y){cout << x &#43; y << endl;return;}cout << y - y % x / 2 << endl;
}
signed main(){std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int t;cin >> t;while (t--) solve();
}