Trait Geometry para cálculo de área e perímetro

Rust Medium traits

Tarefa «Trait Geometry para cálculo de área e perímetro»

Implemente o trait Geometry com os métodos area() -> f64 e perimeter() -> f64. Crie as estruturas Circle (raio), Rectangle (largura, altura) e Triangle (lados a, b, c). Para cada estrutura, implemente o trait Geometry. No main, leia do stdin três linhas: para o círculo o raio (f64), para o retângulo a largura e a altura (f64 separados por espaço), para o triângulo os três lados (f64 separados por espaço). Exiba para cada figura a área e o perímetro separados por espaço, cada par em uma nova linha. A área e o perímetro devem ser arredondados para duas casas decimais. Se o triângulo não existir (a desigualdade triangular não for satisfeita), exiba "Invalid triangle" em vez dos números.

Formato de Entrada

Três linhas. A primeira: um número f64 — o raio do círculo. A segunda: dois números f64 separados por espaço — largura e altura do retângulo. A terceira: três números f64 separados por espaço — os lados do triângulo.

Formato de Saída

Três linhas. Para as duas primeiras figuras: área e perímetro separados por espaço, arredondados para duas casas decimais. Para o triângulo: área e perímetro separados por espaço, arredondados para duas casas decimais, ou a string "Invalid triangle".

Exemplos

Exemplo 1

ENTRADA
1.0 2.5 3.5 1.0 2.0 3.0
SAÍDA
3.14 6.28 8.75 12.00 Invalid triangle

Exemplo 2

ENTRADA
3 кот дом стол
SAÍDA
кот дом стол

Exemplo 3

ENTRADA
2 я мы
SAÍDA
я мы
main.rs