Oui, l'aire du triangle provient des coordonnées des trois points ~ ~ http://abc002.contest.atcoder.jp/tasks/abc002_3
Même si vous connaissez les coordonnées à trois points, un point n'est pas toujours (0,0) pour plus de commodité, et cela semble être très gênant ...
J'ai pensé, mais quand j'ai regardé un peu, je suis tombé sur une histoire selon laquelle l'un d'entre eux devrait être décidé comme (0,0).
Un indice de l'officiel à l'époque
3 points(0,0), (a,b), (c,d)L'aire du triangle composée de|ad−bc|⁄2. (Cette astuce a été publiée une heure après le début du concours. à propos de ça. Oui.
Code soumis.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
import sys
import io
import re
import math
#start = time.time()
#start = time.clock()
(xa,ya, xb,yb, xc,yc) = map(int, raw_input().split())
xa=xa-xc
ya=ya-yc
xb=xb-xc
yb=yb-yc
xc,yc=0,0
j=(xa*yb)-(ya*xb)
if j<0: j=j*(-1)
S=j/2.0
print S
J'ai décidé de recevoir les trois points comme (xa, ya) (xb, yb) (xc, yc). xc,J'ai décidé de mettre yc à 0, donc un,Soustraire de chacun de b|ad−bc|En utilisant la formule de ⁄2. Cependant, il semble que le calcul sera étrange s'il est mélangé avec des coordonnées moins, donc s'il est inférieur à 0, je l'ai multiplié par -1. Il semble qu'il existe d'autres situations où l'aire du triangle est calculée par cette méthode, il sera donc utile plus tard si vous comprenez et enregistrez un style d'écriture plus propre en regardant les soumissions d'autres personnes.
Recommended Posts