Page 9 of 9
Re: 190-Circle Through Three Points
Posted: Mon Apr 14, 2014 9:52 pm
by brianfry713
Use the code blocks when posting. Don't put smiley faces in your code.
Print a single blank line after each equation pair.
Re: 190-Circle Through Three Points
Posted: Thu Jun 26, 2014 12:06 am
by PromeNabid
Getting WA.
1. I followed
http://www.regentsprep.org/Regents/math ... 6/RCir.htm this link to find h and k. Then normalized and found r, f, g, c.
2. To aovid division by 0 I first checked if 0 == 0 then it result is 1, if denominator is 0 then result is 0, otherwise did division.
Here is my code.
Code: Select all
removed after ac and my idea has been changed a lot.
Update:
To avoid precision read and solve this tutorial of topcoder.
http://community.topcoder.com/tc?module ... =geometry2
Re: 190-Circle Through Three Points
Posted: Thu Jun 26, 2014 8:09 pm
by brianfry713
Try the I/O in this thread.
190 - Circle Through Three Points-- WA
Posted: Thu Aug 07, 2014 7:04 am
by NAbdulla
I couldn't understand whats wrong in my code
#include <stdio.h>
#include <math.h>
double slope(double a1, double b1, double a2, double b2)
{
double m;
if(a1 == a2) return 0;
else{
m = ((b2-b1)/(a2-a1));
return m;
}
}
int main()
{
double x1, y1, x2, y2, x3, y3, m1, m2, x, y, r, g, f, c;
int c1;
while(scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &x3, &y3) != EOF){
m1 = slope(x1, y1, x2, y2);
m2 = slope(x2, y2, x3, y3);
x = ((m1 * (y1*m2 - x2 - x3 - y3 * m2) + m2 * (x1 + x2))) / (2 * (m2 - m1));
y = (x1 - x3 + (m1 * (y1 + y2)) - (m2 * (y2 + y3))) / (2 * (m1 - m2));
r = sqrt(((x-x1) * (x -x1)) + ((y-y1) * (y - y1)));
g = - 2 * x;
f = - 2 * y;
c = pow(x, 2) + pow(y, 2) - pow(r, 2);
if(x == -0) x = 0;
if(y == -0) y = 0;
if(g == -0) g = 0;
if(f == -0) f = 0;
if(c == -0) c = 0;
if(x < 0) printf("(x + %.3lf)^2 + ", -x);
else if(x == 0) printf("x^2 + ");
else if(x > 0) printf("(x - %.3lf)^2 + ", x);
if(y < 0) printf("(y + %.3lf)^2 = %.3lf^2\n", -y, r);
else if(y == 0) printf("y^2 = %.3lf^2\n", r);
else if(y > 0) printf("(y - %.3lf)^2 = %.3lf^2\n", y, r);
if(g < 0) printf("x^2 + y^2 - %.3lfx ", -g);
else if(g == 0) printf("x^2 + y^2 ");
else if(g > 0) printf("x^2 + y^2 + %.3lfx ", g);
if(f < 0) printf("- %.3lfy ", -f);
else if(f > 0) printf("+ %.3lfy ", f);
if(c < 0) printf("- %.3lf ", -c);
else if(c > 0) printf("+ %.3lf ", c);
printf("= 0");
printf("\n\n");
}
return 0;
}
Re: 190 - Circle Through Three Points-- WA
Posted: Thu Aug 07, 2014 8:07 am
by lighted
Code: Select all
Use the code blocks when posting. Like this
You must search threads about your problem first. Don't open new thread.
Insert problem number 190 into search box and you will get many explanations why your code may get WA.
http://acm.uva.es/board/search.php?keyw ... fdba2052b1
In that threads you can find input/output to check your program. For example
S.H.Bouwhuis wrote:Here are some sample inputs and outputs for my accepted submission:
Input
Code: Select all
7.0 -5.0 -1.0 1.0 0.0 -6.0
1.0 7.0 8.0 6.0 7.0 -2.0
5 5 4 7 16 5
56 40 66 76 31 8
44 39 26 23 37 38
18 82 29 41 33 15
0 49 19 56 98 3
7 0 11 0 9 2
0 9 0 15 3 12
0.0 0.0 1.0 0.0 0.0 2.0
6.6 2.5 -4.0 -4.0 6.6 -8.0
3.7 -4.1 3.7 -1.5 1.0 1.0
9.0 -2.0 1.0 1.0 -5.0 -2.0
5.4 6.3 0.0 6.3 -7.8 -0.8
3.1 4.1 5.9 2.6 5.3 5.8
10.0 11.0 12.0 13.0 0.0 0.0
0.0 0.0 1.1 0.0 0.0 1.1
Output
Code: Select all
(x - 3.000)^2 + (y + 2.000)^2 = 5.000^2
x^2 + y^2 - 6.000x + 4.000y - 12.000 = 0
(x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
x^2 + y^2 - 7.842x - 4.895y - 7.895 = 0
(x - 10.500)^2 + (y - 9.000)^2 = 6.801^2
x^2 + y^2 - 21.000x - 18.000y + 145.000 = 0
(x + 33.686)^2 + (y - 84.302)^2 = 100.031^2
x^2 + y^2 + 67.372x - 168.603y - 1764.717 = 0
(x - 42.830)^2 + (y - 22.191)^2 = 16.849^2
x^2 + y^2 - 85.660x - 44.383y + 2042.957 = 0
(x + 279.295)^2 + (y + 19.738)^2 = 314.221^2
x^2 + y^2 + 558.590x + 39.475y - 20339.607 = 0
(x - 32.340)^2 + (y + 9.494)^2 = 66.838^2
x^2 + y^2 - 64.679x + 18.987y - 3331.372 = 0
(x - 9.000)^2 + y^2 = 2.000^2
x^2 + y^2 - 18.000x + 77.000 = 0
x^2 + (y - 12.000)^2 = 3.000^2
x^2 + y^2 - 24.000y + 135.000 = 0
(x - 0.500)^2 + (y - 1.000)^2 = 1.118^2
x^2 + y^2 - 1.000x - 2.000y = 0
(x - 2.526)^2 + (y + 2.750)^2 = 6.645^2
x^2 + y^2 - 5.053x + 5.500y - 30.211 = 0
(x + 0.011)^2 + (y + 2.800)^2 = 3.932^2
x^2 + y^2 + 0.022x + 5.600y - 7.622 = 0
(x - 2.000)^2 + (y + 8.500)^2 = 9.552^2
x^2 + y^2 - 4.000x + 17.000y - 15.000 = 0
(x - 2.700)^2 + (y + 4.501)^2 = 11.133^2
x^2 + y^2 - 5.400x + 9.001y - 96.399 = 0
(x - 4.883)^2 + (y - 4.066)^2 = 1.784^2
x^2 + y^2 - 9.767x - 8.131y + 37.195 = 0
(x - 142.500)^2 + (y + 119.500)^2 = 185.974^2
x^2 + y^2 - 285.000x + 239.000y = 0
(x - 0.550)^2 + (y - 0.550)^2 = 0.778^2
x^2 + y^2 - 1.100x - 1.100y = 0
Neto_o wrote:I'm not reading your code since it's not written with the needed spaces and indentation, I can give you some inputs/outputs from my Accepted code, so you can test:
Input:
Code: Select all
-34 23 -18 16 20 15
0 0 0 12 12 0
0 12 0 0 12 0
-143 200 -143 -100 200 200
0 0 0.0134 0.0325 0.0888 0.087787
0 0 0.00134 0.00325 0.0888 0.0087787
-42350 -800 0 0 4235 -800
Output:
Code: Select all
(x - 2.840)^2 + (y - 85.420)^2 = 72.481^2
x^2 + y^2 - 5.680x - 170.840y + 2051.200 = 0
(x - 6.000)^2 + (y - 6.000)^2 = 8.485^2
x^2 + y^2 - 12.000x - 12.000y + 0.000 = 0
(x - 6.000)^2 + (y - 6.000)^2 = 8.485^2
x^2 + y^2 - 12.000x - 12.000y + 0.000 = 0
(x - 28.500)^2 + (y - 50.000)^2 = 227.843^2
x^2 + y^2 - 57.000x - 100.000y - 48600.000 = 0
(x - 0.116)^2 + (y + 0.029)^2 = 0.120^2
x^2 + y^2 - 0.233x + 0.058y + 0.000 = 0
(x - 0.047)^2 + (y + 0.017)^2 = 0.050^2
x^2 + y^2 - 0.093x + 0.035y + 0.000 = 0
(x + 19057.500)^2 + (y + 112495.156)^2 = 114097.978^2
x^2 + y^2 + 38115.000x + 224990.312y + 0.000 = 0
Re: 190 - Circle Through Three Points-- WA
Posted: Thu Aug 07, 2014 9:30 am
by NAbdulla
thanks.
Re: 190 - Circle Through Three Points-- WA
Posted: Thu Aug 07, 2014 9:42 am
by lighted
It will be good if you remove your code after getting accepted.
