Recently a Golden Circle of Beetlovers was found in Byteland. It is a circle route going through n⋅k cities. The cities are numerated from 11to n⋅kn⋅k, the distance between the neighboring cities is exactly 11 km.

Sergey does not like beetles, he loves burgers. Fortunately for him, there are nn fast food restaurants on the circle, they are located in the 11-st, the (k+1)(k+1)-st, the (2k+1)(2k+1)-st, and so on, the ((n−1)k+1)((n−1)k+1)-st cities, i.e. the distance between the neighboring cities with fast food restaurants is kk km.

Sergey began his journey at some city ss and traveled along the circle, making stops at cities each ll km (l>0l>0), until he stopped in ss once again. Sergey then forgot numbers ss and ll, but he remembers that the distance from the city ss to the nearest fast food restaurant was aakm, and the distance from the city he stopped at after traveling the first ll km from ss to the nearest fast food restaurant was bb km. Sergey always traveled in the same direction along the circle, but when he calculated distances to the restaurants, he considered both directions.

Now Sergey is interested in two integers. The first integer xx is the minimum number of stops (excluding the first) Sergey could have done before returning to ss. The second integer yy is the maximum number of stops (excluding the first) Sergey could have done before returning to ss.

Input

The first line contains two integers nn and kk (1≤n,k≤1000001≤n,k≤100000) — the number of fast food restaurants on the circle and the distance between the neighboring restaurants, respectively.

The second line contains two integers aa and bb (0≤a,b≤k20≤a,b≤k2) — the distances to the nearest fast food restaurants from the initial city and from the city Sergey made the first stop at, respectively.

Output

Print the two integers xx and yy.

Examples

input

Copy

2 3
1 1

output

Copy

1 6

input

Copy

3 2
0 0

output

Copy

1 3

input

Copy

1 10
5 3

output

Copy

5 5

Note

In the first example the restaurants are located in the cities 11 and 44, the initial city ss could be 22, 33, 55, or 66. The next city Sergey stopped at could also be at cities 2,3,5,62,3,5,6. Let's loop through all possible combinations of these cities. If both ss and the city of the first stop are at the city 22 (for example, l=6l=6), then Sergey is at ss after the first stop already, so x=1x=1. In other pairs Sergey needs 1,2,31,2,3, or 66 stops to return to ss, so y=6y=6.

In the second example Sergey was at cities with fast food restaurant both initially and after the first stop, so ll is 22, 44, or 66. Thus x=1x=1, y=3y=3.

In the third example there is only one restaurant, so the possible locations of ss and the first stop are: (6,8)(6,8) and (6,4)(6,4). For the first option l=2l=2, for the second l=8l=8. In both cases Sergey needs x=y=5x=y=5 stops to go to ss.

题意:有n*k个城市在(1,k+1,(i-1)*k+1)处有n个餐馆,已知开始的出发的城市距离一个餐馆有akm,第一个到的城市距离最近的餐馆有bkm问出发到回来出发的城市最少多少步,最多多少步。

思路:枚举长度(k*x+b) ,然后以1为起点,分两个方向找到的第一步到的起点。注意(这里只要枚举一个起点是因为枚举的是出发点和第一个点的长度然后求gcd找出最多一步走多少,最少走多少,然后除一下就得出答案)。

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define LL long longusing namespace std;//LL a[maxn];
//LL sum[maxn];
LL gcd(LL x,LL y)
{if(y==0)return x;elsereturn gcd(y,x%y);
}
int main()
{LL n,k,a,b;scanf("%lld%lld",&n,&k);scanf("%lld%lld",&a,&b);LL start=1+a;LL mx=1,mi=n*k;LL sum=n*k;for(int i=1;i<=n;i++){LL en=(i-1)*k+b+1;mx=max(mx,gcd(sum,sum+(en-start)%sum));mi=min(mi,gcd(sum,sum+(en-start)%sum));en=(i-1)*k+1-b;mx=max(mx,gcd(sum,sum+(en-start)%sum));mi=min(mi,gcd(sum,sum+(en-start)%sum));}printf("%lld %lld\n",sum/mx,sum/mi);return 0;
}

A. The Beatles相关推荐

  1. 给初级beatles热爱者提供的歌曲MP3下载

    看到一个beatles(披头士)乐队的爱好者的论坛: http://www.beatles.cn/forum/Boards.asp 里面有一个下载列表,我都下载了.我听beatles的歌不多,但有几首 ...

  2. D - The Beatles CodeForces - 1143D

    D - The Beatles CodeForces - 1143D Recently a Golden Circle of Beetlovers was found in Byteland. It ...

  3. D. The Beatles(思维+枚举)

    D. The Beatles 题意: 有n*k个城市,每个城市间的距离是1km,在第1,1+k,1+k*2--,1+(n-1)*k个城市中有饭馆, 从城市s出发,每次走过的距离为l,问再次回到s时停了 ...

  4. Beatles小记-分布式数据流分析框架(一)

    Author:放翁(文初) Email:fangweng@taobao.com Mblog:weibo.com/fangweng Blog: http://blog.csdn.net/cenwench ...

  5. CF1143D/1142A The Beatles

    CF1143D/1142A The Beatles 将题目中所给条件用同余方程表示,可得 \(s-1\equiv \pm a,s+l-1\equiv \pm b\mod k\). 于是可得 \(l\e ...

  6. Codeforces Round #549 (Div. 2) D. The Beatles

    D. The Beatles time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  7. Codeforces Round #549 (Div. 2) 1143D. The Beatles

    D. The Beatles time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. ACM题解——训练赛2_D - The Beatles

    ACM题解--训练赛2_D - The Beatles 题目描述 Examples Input 2 3 1 1 Output 1 6 Input 3 2 0 0 Output 1 3 Input 1 ...

  9. 【资源分享】The Beatles(披头士)乐队所有专辑带封面

    资源免费分享,送给各位披头士的粉丝.只求个赞可以吗. 复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1N5BXA18JeaznYhRRy6k ...

  10. D. The Beatles

    链接 [https://codeforces.com/contest/1143/problem/D] 题意 就是有nkcity,n个面包店 第一个面包店在1city,第x个在(x-1)k+1city ...

最新文章

  1. android handler,Android中Handler原理
  2. Spring框架—SpringBean配置
  3. js判断函数是否存在
  4. Linux入门学习(四)
  5. (04)System Verilog 利用函数通用总线激励驱动方法
  6. 卡方检验用于特征选择
  7. 开发的免费Windows 8 应用程序
  8. docker安装nexus3
  9. Linux内核数据结构之哈希表
  10. 数学-盲点题:九个点用四条直线连起来
  11. 开天辟地--达特茅斯会议
  12. 滴滴抢单 java_今天我体验了下传说估值100亿美金的「滴滴拉屎」App,出门再也不愁找厕所了...
  13. Requirement already satisfied问题
  14. 指纹识别综述(11): 专利
  15. 移动拼图游戏(八数码问题)A*版
  16. C# 读取 vCard 格式
  17. 飘雪的夜晚,在那短短的几分钟内,她是我的,然而转过那条街,我们各奔东西
  18. tikz 折线 箭头_TIKZ——LaTeX基本绘图
  19. js 进一法取正、四舍五入法取正、舍去法取正
  20. jmeter-跨线程组调用token

热门文章

  1. 幼儿课外活动游戏_适合幼儿园的课外活动有哪些游戏
  2. 管理类联考笔试还是计算机考,管理类联考笔试究竟难在哪儿?
  3. css加载失败的原因是什么?
  4. Python学习笔记 之 从入门到放弃
  5. uni-app 聊天对话滚动到最底部
  6. 仿微信、QQ聊天页面软键盘遮挡聊天对话的解决办法
  7. 什么是压力测试,在哪里做压力测试,软件压力测试存在哪些问题?
  8. html细边框表格代码,html中表格细边框的四种实现及其比较
  9. 计算机网络中可靠,在计算机网络中,数据传输的可靠性可以用( )测评
  10. 一体化计算机接口,4.机电一体化计算机接口设计(下).ppt