队友和大佬都什么几种情况啥的……我是把终点都插了,起点随便选一个,暴举答案莽A。

 

 1 const int maxn = 1e5 + 5;
 2 ll n, k, a, b, aa, minn = INF, maxx = -1;
 3 set<ll> bb;
 4 
 5 ll gcd(ll a, ll b) {
 6     return b ? gcd(b, a % b) : a;
 7 }
 8 
 9 int main() {
10     cin >> n >> k >> a >> b;
11     ll T = n * k;
12     rep(i, 0, n - 1) {
13         ll p = (ll)i * k + 1;
14         bb.insert((p + b) % T);
15         bb.insert((p - b + T) % T);
16     }
17     aa = (1 + a) % T;
18     for(set<ll>::iterator it = bb.begin(); it != bb.end(); it++) {
19         ll t = *it;
20         ll ans = T / gcd(T, (t - aa + T) % T);
21         minn = min(minn, ans);
22         maxx = max(maxx, ans);
23     }
24     cout << minn << " " << maxx << endl;
25     return 0;
26 }

 

相关文章:

  • 2021-09-18
  • 2022-02-05
  • 2021-10-03
  • 2021-11-05
  • 2021-05-17
  • 2022-02-22
  • 2021-06-19
  • 2021-12-14
猜你喜欢
  • 2022-12-23
  • 2021-11-21
  • 2021-07-18
  • 2021-12-05
  • 2021-05-16
  • 2021-05-24
  • 2021-10-30
相关资源
相似解决方案