Page 1 of 2
11186 - Circum Triangle
Posted: Sun Mar 04, 2007 1:11 pm
by deepesh
I thought a nc3*(16) test cases would not result in TLE. But I could never get it working in the contest.
Is there any trick that I can use to do this problem. Is the expected order n^3 or is there a better solution?
I pre-calculate all the sin(angle). where angle ranges from 0 to 360. Still I am not able to get it working in time.
Posted: Sun Mar 04, 2007 1:18 pm
by Erik
Hi,
my solution runs in O(n^2) without any precomputation.
Cu, Erik

Posted: Sun Mar 04, 2007 2:11 pm
by fpavetic
can somebody please tell me outputs for following test cases
and if it is not a problem, can one tell me his result BEFORE rounding too, i suspect i am having precision issue
http://fpavetic.googlepages.com/11186.big1
http://fpavetic.googlepages.com/11186.big2
http://fpavetic.googlepages.com/11186.big3
http://fpavetic.googlepages.com/11186.big4
Posted: Sun Mar 04, 2007 3:40 pm
by rio
There is a solution with O(n) too.
For the previous posted test, my code outputs
Code: Select all
21341254742
6326026258
93611494
92130101
Posted: Sun Mar 04, 2007 4:45 pm
by DP
Hi rio,
Would you kindly give me some hints about O(n)?
Or you can PM me.
thnx
Posted: Sun Mar 04, 2007 5:13 pm
by fpavetic
rio wrote:There is a solution with O(n) too.
For the previous posted test, my code outputs
Code: Select all
21341254742
6326026258
93611494
92130101
can you please tell me what do you get before you round your solutions
i get:
21341254742.435440063476562
6326026258.263971328735352
93611493.600922271609306
92130100.976980358362198
Posted: Sun Mar 04, 2007 6:04 pm
by rio
>> DP
I's not so hard. Just evaluate the O(n^3) solution.
>> fpavetic
Code: Select all
21341254742.435253143310547
6326026258.263983726501465
93611493.600922450423241
92130100.976980507373810
If you output like below, I think there would be no precision issue with rounding.
Posted: Sun Mar 04, 2007 6:09 pm
by deepesh
I have got accepted on this problem with an order n^2 algorithm. But I am not able to think of an order n algorithm. It would be great if some one could give a hint.
Posted: Sun Mar 04, 2007 6:13 pm
by fpavetic
well, i still cant get it accepted so if anybody can check out my code:
Code: Select all
removed
silly, yet frustrating mistake
thank you deepesh and rio
Posted: Sun Mar 04, 2007 6:21 pm
by deepesh
if (n<3) you should not just return, but read the corresponding values as well.
2 10
1.00
359.00
You should not miss reading 1.00 and 359.00 even if you do not process them.
Posted: Sun Mar 04, 2007 6:22 pm
by rio
Silly bug here.
Code: Select all
if( n < 3 ) {
puts( "0" ); continue;
}
for( int i = 0; i < n; ++i ) {
double a;
scanf( "%lf", &a );
V[i] = a;
}
Posted: Sun Mar 04, 2007 11:47 pm
by Erik
Hello,
There is a solution with O(n) too.
Thanks rio!
I found a simple O(n) calculation but it still is O(n*log n) as I have to sort the points by angles.
Did you find a way without sorting?
Cu, Erik

Please help..
Posted: Mon Mar 05, 2007 2:22 am
by rainmaker
Hello. I want to know O(n^2) and O(n) algorithm about this problem.
Would you give me some hint?
Thanks
Posted: Mon Mar 05, 2007 4:09 am
by rio
Erik wrote:Hello,
There is a solution with O(n) too.
Thanks rio!
I found a simple O(n) calculation but it still is O(n*log n) as I have to sort the points by angles.
Did you find a way without sorting?
Cu, Erik

Oops. How fool I am. I forgot the sortings

My solution is O(n*log n).
Sory you guys.
I think we are doing the same solution, Erik.
Need help
Posted: Thu Mar 08, 2007 9:41 am
by rainmaker
Hello. I got TLE in last contest. I tried it using O(n^3) algorithm.
I've heard that there are O(n^2) and O(nlogn) algorithm.
I've thought of it since last contest, but I don't know about that.
Would you kindly give me some hints about O(n^2) or O(nlogn)?
Or you can PM me.
Thanks.