Codeforces и Polygon могут быть недоступны в период с 6 декабря, 22:00 (МСК) по 7 декабря, 00:00 (МСК) в связи с проведением технических работ. ×

Блог пользователя mochow

Автор mochow, история, 9 лет назад, По-английски

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'?

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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 )