#include #include #include #include #include #include #include #define llint long long #define inf 1e18 using namespace std; typedef pair P; llint a, b, c, d; llint n; llint x[100005], y[100005]; llint gcd(llint a, llint b) { if(b == 0) return a; return gcd(b, a%b); } int main(void) { cin >> a >> b >> c >> d; cin >> n; llint det = a*d-b*c; for(int i = 1; i <= n; i++) cin >> x[i] >> y[i]; set

S; if(det == 0){ x[10000000]; llint gx = gcd(a, c), gy = (b, d); //cout << gx << " " << gy << endl; for(int i = 1; i <= n; i++){ llint bunsi = gx*y[i]-gy*x[i], bunbo = gx; //cout << bunsi << " " << bunbo << endl; llint g = gcd(abs(bunsi), abs(bunbo)); if(bunbo == 0) g = 1; S.insert(make_pair(bunsi/g, bunbo/g)); } cout << S.size() << endl; return 0; } for(int i = 1; i <= n; i++){ det = abs(det); llint bunsi1 = x[i]*d-y[i]*c, bunsi2 = a*y[i]-x[i]*b; if(bunsi1 < 0) bunsi1 = det - abs(bunsi1)%det; if(bunsi2 < 0) bunsi2 = det - abs(bunsi2)%det; bunsi1 %= det, bunsi2 %= det; S.insert(make_pair(bunsi1, bunsi2)); } cout << S.size() << endl; return 0; }