set统计太方便了
View Code
#include<iostream>
#include<set>
using namespace std;
struct data
{
int x,y;
}a[209];
int main()
{
int n;
set<double>set1;
while(scanf("%d",&n)!=EOF)
{
set1.clear();
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
double t;
bool wu=0;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i].x-a[j].x==0)//注意斜率不存在的时候
{
wu=1;continue;
}
t=(a[i].y-a[j].y)*1.0/(a[i].x-a[j].x);
set1.insert(t);
}
}
printf("%d\n",set1.size()+wu);
}
}
#include<set>
using namespace std;
struct data
{
int x,y;
}a[209];
int main()
{
int n;
set<double>set1;
while(scanf("%d",&n)!=EOF)
{
set1.clear();
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
double t;
bool wu=0;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i].x-a[j].x==0)//注意斜率不存在的时候
{
wu=1;continue;
}
t=(a[i].y-a[j].y)*1.0/(a[i].x-a[j].x);
set1.insert(t);
}
}
printf("%d\n",set1.size()+wu);
}
}