[PYTHON] AtCoder Beginner Contest # 002 Problème C

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

Conseils

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

AtCoder Beginner Contest # 002 Problème C
AtCoder Beginner Contest 174 C Problème (Python)
AtCoder Regular Contest # 002 Problème C
Concours AtCoder Débutant 177
Concours AtCoder Débutant 179
Concours AtCoder Débutant 172
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
AtCoder Beginner Contest 176 Explication de l '«étape» du problème C (Python3, C ++, Java)
Critique du concours AtCoder Beginner Contest 152
AtCoder Beginner Contest 166 A Explication du problème "A? C" (Python3, C ++, Java)
AtCoder Beginner Contest 174 B Explication du problème "Distance" (C ++, Python, Java)
AtCoder Beginner Contest 177 B Explication du problème "Sous-chaîne" (Python3, C ++, Java)
Critique du concours AtCoder Débutant 160
Critique du concours AtCoder Débutant 178
Concours AtCoder Débutant 180 Remarque
Critique du concours AtCoder pour débutant 166
Concours AtCoder Débutant 182 Remarque
AtCoder Beginner Contest 167 Explication d'un problème "enregistrement" (Python3, C ++, Java)
Critique du concours AtCoder
Critique du concours AtCoder Débutant 181
AtCoder Débutant Contest 171 Critique
Critique du concours AtCoder pour débutant 182
Critique du concours AtCoder Débutant 180
Concours AtCoder pour débutants 156 WriteUp
Critique du concours AtCoder pour débutant 177
AtCoder Débutant Contest 168 Critique
Critique du concours AtCoder
Concours AtCoder pour débutants 167
Critique du concours AtCoder pour débutant 172
Concours AtCoder Débutant 183 Remarque
Critique du concours AtCoder
Concours AtCoder Débutant 184 Remarque
AtCoder Débutant Contest 175 Critique
Critique du concours AtCoder
Critique du concours AtCoder Beginner Contest 153
Critique du concours AtCoder pour débutant 156
AtCoder Débutant Contest 161 Critique
AtCoder Débutant Contest 170 Critique
AtCoder Beginner Contest 169 B Problème Explication "Multiplication 2" (Python3, C ++, Java)
Critique du concours AtCoder
AtCoder Débutant Contest 173 Critique
AtCoder Débutant Contest 155 Critique
AtCoder Débutant Contest 162 Évaluation
AtCoder Beginner Contest 170 Un problème Explication des «cinq variables» (C ++, Python, Java)
AtCoder Beginner Contest 176 A Explication du problème "Takoyaki" (Python3, C ++, Java)
AtCoder Beginner Contest 175 B Explication du problème "Making Triangle" (C ++, Python3, Java)
AtCoder Beginner Contest 175 Explication d'un problème "Saison des pluies" (C ++, Python3, Java)
AtCoder Beginner Contest 176 B Problème Explication "Multiple of 9" (Python3, C ++, Java)
AtCoder Beginner Contest 174 Explication d'un problème "Climatiseur" (C ++, Python, Java)
AtCoder Beginner Contest 181 Rapport de participation
AtCoder Beginner Contest 175 Inscription virtuelle
AtCoder Beginner Contest 161 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 154 Rapport de participation
Note de participation au concours pour débutants AtCoder # 003
AtCoder Beginner Contest 166 Rapport de participation