As Valeric and Valerko were watching one of the last Euro Championship games in a sports bar, they broke a mug. Of course, the guys paid for it but the barman said that he will let them watch football in his bar only if they help his son complete a programming task. The task goes like that.
Let's consider a set of functions of the following form:

Valeric and Valerko really want to watch the next Euro Championship game, so they asked you to help them.
The first line contains integer n (1 ≤ n ≤ 105) — the number of functions. Each of the following n lines contains two space-separated integer numbers ki, bi ( - 109 ≤ ki, bi ≤ 109) that determine the i-th function.
Print a single number — the number of angles that do not equal 180 degrees in the graph of the polyline that equals the sum of the given functions.
1 1 0
1
3 1 0 0 2 -1 1
2
3 -2 -4 1 7 -5 1
3
#include<iostream>
#include<stdio.h>
#include<set>
#define maxn 100010
using namespace std;
int main()
{
int k,b;
int n,i;
set<long double> s;
while(scanf("%d",&n)!=EOF)
{
s.clear();
for(i=0;i<n;i++)
{
scanf("%d%d",&k,&b);
if(k!=0)
s.insert((long double)b/k);
}
printf("%d\n",s.size());
}
}
本文介绍了一种计算由特定形式的线性函数之和构成的折线图中非180度角数量的方法。通过输入不同参数的线性函数,程序能够找出这些函数相加后形成的折线图中有多少个角度不等于180度。
361

被折叠的 条评论
为什么被折叠?



