题干:

You are given an infinite checkered field. You should get from a square (x1; y1) to a square (x2; y2). Using the shortest path is not necessary. You can move on the field squares in four directions. That is, when you are positioned in any square, you can move to any other side-neighboring one.

A square (xy) is considered bad, if at least one of the two conditions is fulfilled:

  • |x + y| ≡ 0 (mod 2a),
  • |x - y| ≡ 0 (mod 2b).

Your task is to find the minimum number of bad cells one will have to visit on the way from (x1; y1) to (x2; y2).

Input

The only line contains integers abx1, y1, x2 and y2 — the parameters of the bad squares, the coordinates of the initial and the final squares correspondingly (2 ≤ a, b ≤ 109 and |x1|,|y1|,|x2|,|y2| ≤ 109). It is guaranteed that the initial and the final square aren't bad.

Output

Print a single number — the minimum number of bad cells that one will have to visit in order to travel from square (x1; y1) to square (x2; y2).

Examples

Input

2 2 1 0 0 1

Output

1

Input

2 2 10 11 0 1

Output

5

Input

2 4 3 -1 3 7

Output

2

Note

In the third sample one of the possible paths in (3;-1)->(3;0)->(3;1)->(3;2)->(4;2)->(4;3)->(4;4)->(4;5)->(4;6)->(4;7)->(3;7). Squares (3;1) and (4;4) are bad.

题目大意:

给你两个平面内的点,坐标可能很大,但是不会超过int,在平面内可以上下左右走,问你从( x1 , y1 )走到( x2 , y2 )最少可能经过坏点的数量(坏点即为满足| x + y | % 2a ==0 或者| x - y | % 2b == 0)

解题报告:

本题想要坏点最少,而坏点所在的直线其实是满足一定规律的,就是等间距分布。
画到这里其实就已经很明显了,要使两点之间的路线坏点最少,肯定就是在这些直线之间尽量多的走交点,这里还要注意一个问题,就是跨象限的问题(x+y=0 和 x-y=0)。

题解

AC代码:

#include<bits/stdc++.h>
using namespace std;
int a,b,x1,y1,x2,y2;
int x,y;
int main()
{
//  cout << (5/-2)<<endl;cin>>a>>b>>x1>>y1>>x2>>y2;//向左旋转45°建立坐标系 ,精彩 x=x1;y=y1;x1=x+y;y1=y-x;x=x2;y=y2;x2=x+y;y2=y-x;a*=2;b*=2;//看是否都大于0,处理坐标轴那一点 x1=x1/a+(x1>0);x2=x2/a+(x2>0);y1=y1/b+(y1>0);y2=y2/b+(y2>0);//只走交点,也就是,看横着的线和竖着的线哪个多,走哪个,另外一个肯定顺便就能走完了, cout<<max(abs(y2-y1),abs(x2-x1))<<endl;return 0;
}

【CodeForces - 124D】Squares (旋转坐标系,计算几何,思维)相关推荐

  1. html二维坐标系转换,旋转坐标系 转换工具

    旋转坐标系转换工具 假设3D 点的坐标 P, 在已知 x-y-z坐标参考框架: (x,y,z). 1)我们现在想知道在 P 的坐标 x'-y'-z'坐标参考框架, 这是旋转θ 周围的弧度z/z' '轴 ...

  2. dq坐标系下无功功率表达式_一种dq旋转坐标系下谐波电流计算方法与流程

    本发明涉及一种谐波电流计算方法,具体涉及一种dq旋转坐标系下谐波电流计算方法. 背景技术: 自20世纪七十年代起,电网中的晶闸管.二极管整流器.变频器.电气化铁路及各种电力电子设备用量不断增加,这些设 ...

  3. CodeForces - 123B Squares(简单几何+旋转坐标系)

    题目链接:点击查看 题目大意:给出一个无限大的二维坐标平面,现在有一些坏点,规定: 满足以上两条件之一的点即为坏点,现在问最少经过多少个坏点的情况下,可以从起点到达终点 题目分析:一开始没想到坏点是如 ...

  4. 计算几何 -- 旋转坐标系

  5. hdu4998 旋转坐标系

    题意:       一开始的时候有一个坐标系(正常的),然后有n个操作,每个操作是 x y d,意思是当前坐标系围绕x,y点逆时针旋转d度,最后让你输出三个数x y d,把这n个操作的最后结果,用一步 ...

  6. HDU多校3 - 6798 Triangle Collision(几何+旋转坐标系)

    题目链接:点击查看 题目大意:给出一个等边三角形的区域,再给出初始时一个质点的位置 ( x , y ) 和初始速度 ( vx , vy ) ,现在质点会不断运动,当碰到三角形的内壁时会根据角度反弹,问 ...

  7. Codeforces Round #459 (Div. 2) C 思维,贪心 D 记忆化dp

    Codeforces Round #459 (Div. 2) C. The Monster 题意:定义正确的括号串,是能够全部匹配的左右括号串. 给出一个字符串,有 (.). ? 三种字符, ? 可以 ...

  8. RationalDMIS 2020旋转坐标系

    坐标系的旋转,正负方向是依据右手法则,每次操作只能绕一个轴旋转其他两个轴,具备下列两种操作方式: (1)绝对旋转:绕一个轴旋转第二轴,使其与一个几何元素(例如:一条直线)重叠,第三轴也随之转动. (2 ...

  9. codeforces 148 C. Terse princess(思维,构造)

    C. Terse princess(思维,构造) 题目链接:codeforces 148C 题意:     有个公主找王子,如果这个人比之前所有王子的财富都高,公主就会Oh,              ...

最新文章

  1. 关于linux内存管理
  2. idea打开ini文件以记事本方式修改
  3. 数组用法以及引用类型和值类型
  4. 通过Console口本地加载系统程序
  5. 8路抢答器c语言程序,多路抢答器c程序(原创)
  6. 下载 Google Chrome 离线安装包
  7. jquery表单的提交
  8. 保险中介系列法规年内出台
  9. dw添加下拉菜单_怎样用dreamweaver制作网站下拉菜单
  10. docker 在win7电脑上的部署
  11. 领导力与团队管理上课笔记--上
  12. JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。”问题解决方法
  13. 自动化一切!那些我每天使用的快捷自动化工作
  14. edui 富文本编辑_终于我还是输给了免费富文本编辑器
  15. 百度网盘网页版增加倍速播放速度
  16. OPENCV2.4.9配置
  17. 【蓝桥杯 第八大奇迹】
  18. 游戏的衰落,更迭的结果
  19. 职场员工有没有潜力,看这一个能力就够了
  20. 求空间点沿平面法向量与平面交点的坐标

热门文章

  1. [Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]
  2. UVa-10820 Send a Table 欧拉函数
  3. HDU odd-even number 数位dp
  4. oracle控制文件全备失败,Oracle数据库案例整理-恢复数据库失败-主备机控制文件所在目录不同...
  5. android p 权限控制,android 权限控制
  6. 基于matlab的图像分割,基于MATLAB的图像分割算法研究毕业论文
  7. dft计算傅里叶级数系数_一道国外的DFT性质的题目
  8. mysql数据库sysdate_MySql数据库知识点复习
  9. 866. 试除法判定质数
  10. python数据库安装_python数据库-MySQL安装问题总结(48)