zzuoj--10424--无聊的课(简单几何)
2016-01-01 11:23
344 查看
10424: 无聊的课
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 81 Solved: 16
[Submit][Status][Web
Board]
Description
spy上课从来都不好好听讲(嗯,所以成绩也不太好)。他上课常常画一些奇怪的东西画到课本上。
当然,画在课本上的大多数都是点,他老喜欢将所有的点和其中一个点连一条直线。
这里为了简化问题,只考虑点,且把课本当成坐标系,所有点都只和原点(0,0)连一条直线。
现在他有一个烦恼,就是不知道在课本上出现了多少条线。
你可以为他解决这个烦恼吗?
Input
有多组测试数据。输入第一行为一个整数N,表示点的个数,然后第2~N+1行,每行两个整数x,y,代表点的坐标。
输入保证0 < N <= 100, 0 <= x <= 10000, 0 <= y <= 10000。
Output
对于每组测试数据,请输出一行,表示在课本上出现的线的条数。Sample Input
3 1 2 1 3 1 4
Sample Output
3
HINT
原点可以看做本来就有的。线可以重合,几条重合了的线需要当成一条线。
好坑,可以输入相同的点
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define E 1e-6
using namespace std;
double a[110];
int main()
{
int n,i,j,cnt;
int x,y;
while(scanf("%d",&n)!=EOF)
{
memset(a,0,sizeof(a));
int flog=0;
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
if(x==0&&y==0) flog=1;
if(x==0)
a[i]=10001;
else
a[i]=y*1.0/x;
}
sort(a,a+n);
if(n==0)
printf("0\n");
else
{
cnt=unique(a,a+n)-a;
if(flog) cnt--;
printf("%d\n",cnt);
}
}
return 0;
}
相关文章推荐
- 巧用过滤器和标签整理你的gmail邮件
- zzuoj--10424--无聊的课(简单几何)
- [Android] Android SDK 安装代理设置
- HDFS High Availability Using the Quorum Journal Manager
- android material design 之elevation,tinting,clipping
- 设计模式汇总
- Android TextView显示html样式的文字
- 2016/1/1 运算符 笔记整理 接2015/12/30 Java 语法
- <1>拜耳阵列
- 优秀工作流引擎标准
- 堆排序的初步学习
- html5调用手机摄像头,实现拍照上传功能
- Ubuntu 安装Nginx
- 深入理解TCP(二)
- Hadoop 2.0 中 NameNode/ResourceManager HA 总结
- 数据总线
- 告别2015,展望2016
- Linux 常用
- 详解Linux中rm与rmdir删除命令的用法
- 委托 (代码复习)