描述

众所周知,两个向量a(x1,y1)+b(x2,y2)=c(x1+x2,y1+y2)。

那么我们已经熟知了向量的运算法则,下面我们来做一点实际问题。

给出两个向量a和b,以及n个向量的集合A={vector[i]}。问a,b是否与A等价。

等价的条件是对于任意整数x,y,都可以找到一个长度为n的整数序列T={t[i]|t[i]是整数}

使得

\sum_{i=1}^{n}(t[i]*vector[i])=x*a+y*b

反之亦然(对于每个序列,都有一个x,y与之对应)。

输入格式

第一行一个整数Q,表示数据组数

对于每组数据,第一行给出n。

接下来n行,每行两个整数表示vector[i]。

最后两个用空格隔开的向量a和b,每个向量由两个整数表示。

输出格式

对于每组数据,如果等价输出YES,如果不等价输出NO

样例输入

1
2
1 2
3 4
1 2 3 4

样例输出

YES

数据范围与约定

  • 对于30%的数据:n\leq 5
  • 对于100%的数据:n\leq 100, Q \leq 100
  • 同时对于所有数据,vector[i]的每个维都是0~10001的整数,并且它们不共线,对于最后的a和b每个维保证在int范围内。
  • 友情提示,用long long可能会好一点