bzoj#P1530. [POI2005]Sko-Knights

[POI2005]Sko-Knights

题目描述

一个骑士在一个无限的棋盘上移动。它可以执行的每一个动作都必须由一对整数 (a,b)(a,b) 来描述——表示这个骑士可以从 (x,y)(x,y) 移动到 (x+a,y+b)(x+a,y+b) 或者 (xa,yb)(x-a,y-b)。每个骑士都有一组这样的移动描述,表示了骑士可以做出的移动。我们假设每一个骑士从 (0,0)(0,0) 出发移动到的所有位置不共线。

如果他们能从广场 (0,0)(0,0) 到达完全相同的坐标(也许走了好几步),我们就说两个骑士是等价的。(让我们指出,相同的骑士可以在不同的动作中到达这些方块)。可以看出,对于每一个骑士,都存在一对 (a,b)(a,b),其移动仅由两对数字来描述。

你的任务是写一个程序:

从标准输入流读入对骑士移动的表示,确定两对表示等价的骑士移动的整数,并输出这两对整数。

输入格式

第一行读入一个整数 nn,表示有几个骑士 (3n100)(3\le n\le 100)。在以下nn行为表示骑士移动的整数对,每一行是一对整数。在这两行中,有两个整数 aia_ibib_i,并由一个空格分隔开,100ai,bi100-100\le a_i,b_i\le 100,我们假设 (ai,bi)(0,0)(a_i,b_i)\neq (0,0)

输出格式

第一行输出两个整数 aabb,并由一个空格分隔,104a,b104-10^4\le a,b\le 10^4。在第二行应该输出两个整数 ccdd,并由一个空格分隔,104c,d104-10^4\le c,d\le 10^4。运动由对描述,上述整数应满足以下条件:输出应满足两对整数描述的骑士和输入数据中描述的骑士是等价的。

3
24 28
15 50
12 21
468 1561
2805 9356

or:

3 0
0 1