AGC 036 A - Triangle  緑コーダーですが何か?その6

Python にも公式からマスコットでたらもっと楽しいな。

緑のしいだよ、緑コーダーですが何か?第6回目だよ

今日の一問はこれ!

A. Triangle

https://atcoder.jp/contests/agc036/tasks/agc036_a

AGCじゃん。。めっちゃ苦手意識あるけどがんばる。。まあ緑コーダーの私にかかれば瞬殺なんですけどね(笑)

問題の概要は

面積Sが与えられるのでその面積となる三角形の座標を表示してください。

解法

座標は三つあるのでとりあえず一つを原点(0、0)に固定する。

そうしたとき三角形の面積を求める方法は二つある

  1. 底辺 x 高さ / 2
  2. 外積(| x2 * y3 - x3 * y2| / 2)

1の方法は簡単だが求めるがむずかしいので却下 残りの二つの座標をX軸、Y軸に固定するとすぐに求めることができるが 任意の値に対応することができない。 値が大きすぎるためである。

2の方法でいくのだがここで大事なのが

二つ目の座標を(1, 109)**で固定することである。

続きは考察ノート載せとくね📔

(汚くてごめんなさい🙏)

実装

    s = int(input())
    m = 10**9
    x = (m-s%m)%m
    y = (s+x)//m
    print(0,0,m,1,x,y)

あとがき

PythonぬいぐるみほしいからPython認定うけよっかな。