#P17448. Pm12110包围 P 与 Q 的凸包

Pm12110包围 P 与 Q 的凸包

题目描述

给定九个整数 N,X0,XMul,XAdd,XMod,Y0,YMul,YAdd,YModN,X_0,XMul,XAdd,XMod,Y_0,YMul,YAdd,YMod。按下面的递推生成 N+2N+2 个点 (X[i],Y[i])(X[i],Y[i])

X[0]=X0X[0]=X_0,对 0<i<N+20<i<N+2X[i]=(X[i1]×XMul+XAdd)modXModX[i]=(X[i-1]\times XMul+XAdd)\bmod XMod

Y[0]=Y0Y[0]=Y_0,对 0<i<N+20<i<N+2Y[i]=(Y[i1]×YMul+YAdd)modYModY[i]=(Y[i-1]\times YMul+YAdd)\bmod YMod

保证生成的 N+2N+2 个点两两不同,并且任意三个点不共线。

S={(X[0],Y[0]),,(X[N1],Y[N1])}S=\{(X[0],Y[0]),\ldots,(X[N-1],Y[N-1])\}P=(X[N],Y[N])P=(X[N],Y[N])Q=(X[N+1],Y[N+1])Q=(X[N+1],Y[N+1])

SS 中选择一个子集 TT。如果满足以下条件,则称 TT 为合法子集:

  • T3|T|\ge3
  • TT 的凸包同时包含点 PP 和点 QQ

求合法子集数量对 1,000,000,0071,000,000,007 取模后的结果。

输入格式

一行九个整数:

N X0 XMul XAdd XMod Y0 YMul YAdd YMod

输出格式

输出一个整数,表示合法子集数量对 1,000,000,0071,000,000,007 取模后的结果。

样例

输入

4 3 3 3 10 0 3 2 7

输出

3

输入

5 1 5 6 8 5 5 3 9

输出

5

数据范围

3N20003\le N\le20001XMod,YMod1081\le XMod,YMod\le10^80X0,XMul,XAdd<XMod0\le X_0,XMul,XAdd<XMod0Y0,YMul,YAdd<YMod0\le Y_0,YMul,YAdd<YMod。保证生成点两两不同,且任意三个生成点不共线。