2015年2月16日 星期一

2015/02/16 Codeforces 514B. Han Solo and Lazer Gun

// http://codeforces.com/contest/514/problem/B
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>

using namespace std;

typedef pair<int, int> xy;

int gcd(int a, int b)
{
    while( a && b )
    {
        if( a < b ) swap(a, b);
        a%=b;
    }
    return a+b;
}

int N, sx, sy;
vector<xy> v;

int main()
{
    scanf("%d %d %d", &N, &sx, &sy);

    for(int Ni = 0; Ni < N; Ni++)
    {
        int x, y;
        scanf("%d %d", &x, &y);

        x -= sx;
        y -= sy;

        if( x < 0 || x == 0 && y < 0 )
        {
            x *= -1;
            y *= -1;
        }

        int GCD;
        if( y < 0 ) GCD = gcd(x, -y);
        else GCD = gcd(x, y);

        x /= GCD;
        y /= GCD;

        v.push_back(xy(x, y) );
    }

    sort(v.begin(), v.end() );

    printf("%d\n", unique(v.begin(), v.end())-v.begin() );
}

沒有留言:

張貼留言