|  | 
|  | 
| back to board | try this test: Hi everybody! Please run your AC programs on this test:
 0 0 1000 1 2000 0
 
 And post you result with name of compiler you use.
 
 Thank you!
Re: try this test: YES999.999499737564410 0.999999499737564
 1000.000500262685700 0.000000000000000
 
 P.S. Compiler - VS C++. My prog got AC
 
 Edited by author 25.10.2008 21:24
Re: try this test: Thanks!But it is incorrect answer. Precision is not enough. I think jury must change precision to 1e-3 or add this test and make rejudge...
 
 Edited by author 25.10.2008 21:53
Re: try this test: Correct - my solution is analytical. Think why this is another correct answer but obvious "1000 0 1000 1".Re: try this test: It is analytical but not so exact. Actually some analytical solution can use more square root and so on and give not so exact result... If this test will be added (and some similar) than many AC solution will fail.Re: try this test: What means "Not so exact"???
 Perimeter of one part - 2000.0004999998749789068277343249
 Perimeter of another part - 2000.0004999998750212181721875511
 
 Area of one part - 499.9999999999997186851059078174
 Area of another part - 500.0000000000002813148940921826
 
 Don't you see some similarity in them? Up to 10^-12!
Re: try this test: Thank you.Now I understood that in this case we have 3 solution one of them:
 1000 0 1000 1 - the median of triangle
 and 2 another similar to your result.
 
 Sorry for flood
Re: try this test: Posted by Elmurod  30 Oct 2008 23:03Victor Barinov (TNU) Help me please I choose method with median... but i have WA#2
 #include <iostream>
 #include <math.h>
 using namespace std;
 int main()
 {
 double x1,y1,x2,y2,x3,y3,a,b,c;
 double X1,X2,Y1,Y2,X,Y,X0,Y0;
 cout.precision(15);
 cout.setf(ios::fixed);
 cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
 a = sqrt((double)pow(x1-x2,2)+pow(y1-y2,2));
 b = sqrt((double)pow(x1-x3,2)+pow(y1-y3,2));
 c = sqrt((double)pow(x2-x3,2)+pow(y2-y3,2));
 // Finding big side of triangle
 if (a > b && a > c)
 {
 X1 = x1; Y1 = y1; X2 = x2; Y2 = y2;
 X0 = x3; Y0 = y3;
 }
 else if (b > a && b > c)
 {
 X1 = x1; Y1 = y1; X2 = x3; Y2 = y3;
 X0 = x2; Y0 = y2;
 }
 else if (c > a && c > b)
 {
 X1 = x2; Y1 = y2; X2 = x3; Y2 = y3;
 X0 = x1; Y0 = y1;
 }
 X = (X1 + X2) / 2; Y = (Y1 + Y2) / 2;
 cout<<"YES"<<endl<<X0<<" "<<Y0<<endl;
 cout<<X<<" "<<Y;
 return 0;
 }
Re: try this test: Why the segment ST can be the middle-line of the triangle.If a is the longest edge and b is not equal with c, the solution can work out a right answer?
 | 
 | 
|