题意简述
给定六位整数 和整数 ,求所有后六位为 的十二位整数 中, 的最小值。
解题思路
令 。所有合法 可写成 ,其中 。因此,候选数构成公差为 的有限等差数列。若 位于数列内部,最近项是夹住它的两项之一;若 位于范围外,最近项是对应端点。比较候选项与 的距离即可。
参考代码
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const ll M=1000000;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll y,z;
cin>>y>>z;
cout<<abs(clamp((z-y+M/2)/M,100000ll,999999ll)*M+y-z)<<'\n';
return 0;
}