pku3668 Game of Lines

时间:2023-03-09 00:12:05
pku3668 Game of Lines

http://poj.org/problem?id=3668

水题,STL

 #include <stdio.h>
#include <set> using namespace std; set<pair<int, int> > set1; int gcd(int x, int y)
{
return y? gcd(y, x%y): x;
} int abs(int x)
{
return x<? -*x: x;
} struct P
{
int x, y;
}p[]; int main()
{
int n, i, j;
int x, y, gcd_xy;
while(~scanf("%d", &n))
{
set1.clear();
for(i=; i<=n; i++)
{
scanf("%d%d", &p[i].x, &p[i].y);
}
for(i=; i<=n-; i++)
{
for(j=i+; j<=n; j++)
{
x = p[i].x - p[j].x;
y = p[i].y - p[j].y;
if(x < )
{
x *= -;
y *= -;
}
gcd_xy = gcd(abs(x), abs(y));
x /= gcd_xy;
y /= gcd_xy;
if(x == )
{
y = ;
}
if(y == )
{
x = ;
}
//printf("%d %d : %d %d\n", i, j, x, y);
set1.insert(make_pair(x, y));
}
}
printf("%d\n", (int)set1.size());
}
return ;
}