' P '

whatever I will forget

B - Billiards 考え方

B - Billiards

えっえっ?解説読んでも見ても全く意味不明なんですけど、、
って方他にいないですかね。(いないか)
僕は全くもって意味不明だったのでメモします。

まず、この問題を特には数学2の知識が必要です。

内分点の求め方

詳しくは、下記の動画を見てください。めっちゃわかりやすいです

www.youtube.com

上記にあるように、内分点の求め方として、下記の方程式が使用されます

f:id:mankozooyork:20201127010347p:plain

 \dfrac{A_{n}+Bm}{m+n}

これは公式です。この公式がなぜ成立するのか疑問に思ったけど、それはちょっと別の話だし、偉い人が考えたこういう公式はそのまんま利用したらいいや、となっちゃいました

ようやく本題

上記が理解できて、ようやく本題に入れます。

f:id:mankozooyork:20201127011518p:plain

0の軸を元に反射させたものを下にコピーしているだけの直線ですから、0のx軸と交わった点部分の角度は等しくなります。
それゆえ左右の三角形において、相似が働くようです。

www.studyplus.jp

相似が働くと何がいいの?というと、さきほどのm:nの比率が使えるようになります。
今回は、このmとnの高さを比率として、さきほどの式にあてはめます。

問題に変数名を当てはめてみましょう

f:id:mankozooyork:20201127012008p:plain

上記になります。ここまでくればコードにするのは何も難しくありません。

import java.util.Scanner;

public class Main205 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double sx = sc.nextDouble();
        double sy = sc.nextDouble();
        double gx = sc.nextDouble();
        double gy = sc.nextDouble();
        sc.close();

        System.out.println((sx*gy+gx*sy)/(sy+gy));
    }
}