https://atcoder.jp/contests/abc130/tasks/abc130_c
解説
https://atcoder.jp/contests/abc130/submissions/6000248
ABC300点問題なので、なるべく単純に考えることにする。
この問題はある種の構築問題である。
構築問題の典型テクとして「理論値の最大値を実はいつも達成可能」というのがある。
今回もそうで、小さい方の面積の最大値の理論値は、全体の面積の半分である。
これはある一点が与えられたら、対角線の交点をもう一点とする直線を作れば、二等分線が作れる。
そのため、1番目の答えは面積の半分を常に答えればいい。
2番目の答えは、対角線の交点が与えられた点であれば、どんな直線でも二等分になるので、1。
そうでないなら、対角線の交点を通らない直線はだめなので、0。
int W, H, x, y; //--------------------------------------------------------------------------------------------------- void _main() { cin >> W >> H >> x >> y; double ans1 = 1.0 * W * H / 2; int ans2 = 0; if (x * 2 == W and y * 2 == H) ans2 = 1; printf("%.6f %d\n", ans1, ans2); }