Repeatedly getting wrong answer.
Can anyone help me ???
Check this test case: n=3
0 0
0 100
0 -100
Your program is giving 2 but correct answer is 1. This is happening because the compiler treats -inf and inf different (You can check this by printing the slopes). To solve this, check if x2-x1==0 then insert a large value like 5000.0 in the hashmap (The largest value of slope in this problem could be 2000.0). Prior to this, make sure you skip when x2==x1 && y2==y1. Also, rename your class as “Main” before submitting.
Update: I got AC by converting hashmap to long long instead of double. There are precision errors in double. Eg slopes between (-1000,0) and (1000,1) will be same as between (-999,0) and (1000,1) in double. So compute the double value and multiply it by 10^9 and store it as long long in map.
Brother, use SPOJ toolkit : http://www.spojtoolkit.com to find in which test case your code fails to deliver expected output. My implementation: Using mapping : eOk2K6 - Online C++ Compiler & Debugging Tool - Ideone.com & without mapping : R0MILm - Online C++ Compiler & Debugging Tool - Ideone.com
you can also use long double to avoid precision errors
yes that works too. thanks
@michelangelo Your tips worked. Finally got accepted. Thanks
And there was no need to check if 2 points are same,it is given that all points will be distinct.