Codeforces and Polygon may be unavailable from December 6, 19:00 (UTC) to December 6, 21:00 (UTC) due to technical maintenance. ×

mochow's blog

By mochow, history, 9 years ago, In English

Here is the problem: http://mirror.codeforces.com/problemset/problem/257/C

My approach was this: http://mirror.codeforces.com/contest/257/submission/11893523

I first sorted the points clockwise. Then from the last point of the 'clockwise-sorted' array, I go clockwise and counter-clockwise to calculate two angles: Angle1 and Angle2. These two values are actually the summation of the angle between two consecutive points. I output the minimum one.

Eventually, I found out that this problem can be solved in a lot shorter way but I cannot find a bug in my approach.

Was my approach correct? If no, then what did I do wrong? If yes, then how can I get rid of the error = '0.0000388'?

  • Vote: I like it
  • 0
  • Vote: I do not like it

| Write comment?
»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Your solution is almost correct, but you are losing precision. Why ? because you are using arccos(x) This involves calculating distance, and then dividing it again by abs(xcoordinate) , all of which contribute to your losses.

My advice is you better off by using arctan(x) because then your precision loss would be minimized ( self explanatory )