游泳池

有一个游泳池,形状为等腰直角三角形,直角边长250米。   

 游泳池可以看作是在坐标系统中(如上图所示)。用一条两端点在三角形边上的线段把游泳池分成两个面积相同的部分。
  在给定线段其中一个端点的情况下,要你编程输出另一个端点。

Input

  输入第一行包含两个整数,表示线段一个端点的坐标,保证给定的端点在直角三角形的边上。

Output

  输出线段另一个端点的坐标,答案保留2位小数。

Sample Input

输入1:

0 0



输入2:

230 20



输入3:

0 40

Sample Output

输出1:

125.00 125.00



输出2:

0.00 114.13



输出3:

148.81 101.19

 

 

分析:首先我们考虑在顶点上的情况,打个点就好。然后我们考虑在x轴上的情况。先求出总面积为31250。我么们知道,无论怎么分,总会有一个三角形,另一个图形就可以用31250减去即可。我们知道在三角形斜边上的任意一点的横纵坐标之和250,即x+y=250,而在坐标轴上就有一边为0.下面有图解。已知点为A,要求点为B或B’点A为(x,0)。第一种我们就可以用面积求出OB。即可得到答案。第二种复杂一点,我们知道OA,因为OC=120,

所以AC=120-x,可得BD,即为要求点的纵坐标,又因为横纵坐标之和为250,可得横坐标。

 

 

 

const

 p=31250;

var

 x,y,t,t1:longint;

 ansx,ansy:real;

begin

 readln(x,y);

 if (x=0) and (y=0) then beginwriteln('125.00 125.00'); exit; end;

 if (x=0) and (y=250) thenbegin writeln('125.00 0.00'); exit; end;

 if (y=0) and (x=250) thenbegin writeln('0.00 125.00'); exit; end;

 if (y=0) then

  begin

   t:=x;

   t1:=250-x;

   if p/t<=250 then beginansx:=0; ansy:=p/t; end

             else begin ansy:=p/t1; ansx:=250-ansy; end;

 

  end

 else if (x=0) then

  begin

   t:=y;

   t1:=250-y;

   if p/t<=250 then beginansy:=0; ansx:=p/t; end

               else beginansx:=p/t1; ansy:=250-ansx; end;

  end

 else

 begin

  if p/x<=250 then beginansx:=0; ansy:=250-p/x; end

              else beginansy:=0; ansx:=250-p/y; end;

 end;

 writeln(ansx:0:2,'',ansy:0:2);

end.

 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值