結果

問題 No.1381 Simple Geometry 1
コンテスト
ユーザー ID 21712
提出日時 2026-05-26 14:13:50
言語 Go
(1.26.1)
コンパイル:
env GOCACHE=/tmp go build _filename_
実行:
./Main
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 1,667 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 10,241 ms
コンパイル使用メモリ 294,136 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-05-26 14:14:03
合計ジャッジ時間 11,624 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_1
純コード判定待ち
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package main

import . "fmt"

func main() {
	var x,y,z,w float64
	Scan(&x,&y,&z,&w)
	ans := (x - y*z)/2
	Println(ans)
}

/*
考察

|BC| = L
と置くと
|AB| = X/L
|PD| = L - Y
|QD| = X/L - Z
となり
3つの角の三角形の面積の式を立てられるので
求める三角形の面積Sは全体の面積から3つの角の三角形を引いた形なので

S = X - |BC|*|CP|/2 - |AB|*|AP|/2 - |PD|*|QD|/2
  = X - L*Z/2 - X/L*Y/2 - (L-Y)*(X/L-Z)/2
  = (X - Y*Z)/2
となり
入力の値からだけで面積が求まる
(Wを含めて全部が整数で整合性が取れる入力ってどうやって作るんだろうか?難しそう)

さて、サンプルは上記でOKのようなのでそれでは難易度設定に合わない
コーナーケースが存在するかについて考えねば

さきほど |PD| = L - Y としたが
点Pが点Dと一致しないとは問題の条件に書かれてなく保証されないので
|PD| = 0 もありうる?(その場合、点Qは点Dとは一致しない、点Pと点Qは一致しないことが問題の条件で保証されてるため)
その場合の面積はどうなるのか
まぁ |AP| = |AD| = L = Y となるので
BPは長方形の対角線になるので△BPCは長方形の半分
そこから△BCQを引けば求める面積になるはず?
S = X/2 - L*Z/2
  = X/2 - Y*Z/2
一致ですね

点Qが点Dと一致する場合はどうか?
|CQ| = |CD| = X/L = Z
BQは対角線なので求める面積はさっきと同様に
S = X/2 - X/L*Y/2
  = X/2 - Y*Z/2
一致ですね

さて、Wを使用しないし、難易度設定に合わないし、何か見落としが…?

*/
0