2782 - Parada

De la Universitas MediaWiki

Cerință

Pe un câmp orizontal se află doi stâlpi perpendiculari pe sol în punctele A și B. În vârful fiecărui stâlp se află o pasăre de pradă. Pe dreapta d determinată de punctele A si B apare un șoarece în punctul C. Cele două păsări zboară spre șoarece în linie dreaptă cu aceeași viteză.

Cunoscând HA = înălțimea primului stâlp, HB = înălțimea celui de-al doilea stâlp, D = distanța dintre cei doi stâlpi, să se afle distanța X dintre șoarece și baza stâlpului mai înalt astfel încât păsările să ajungă la șoarece în același timp și să-l împartă frățește.

Date de intrare

Programul citește de la tastatură numerele naturale HA, HB și D.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul X, reprezentând distanța dintre șoarece și baza stâlpului mai înalt astfel încât păsările să ajungă la șoarece în același timp și să-l împartă frățește. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • Se garantează că HA, HB, D, X sunt naturale si mai mici sau egale cu 1000

Exemplul 1

Intrare
30
20
50
Ieșire
Datele de intrare corespund restricțiilor impuse.
20

Rezolvare

Rezolvare ver. 1

# Definim functia de validare pentru input
def validare(ha, hb, d, x):
    if 0 < ha <= 1000 and 0 < hb <= 1000 and 0 < d <= 1000 and 0 < x <= 1000:
        return True
    return False


# Definim functia de calcul a distantei dintre soarece si baza
def distanta_soarece_baza(ha, hb, d):
    # Rearanjam valorile lui ha si hb, astfel incat ha sa fie mai mare sau egal cu hb
    if ha < hb:
        ha, hb = hb, ha
    # Calculam distanta dintre soarece si baza, folosind teorema lui Pitagora si aplicand formula generala
    c = ((hb ** 2 + d ** 2 - ha ** 2) / (2 * d))
    # Returnam valoarea absoluta a distantei
    return abs(c)


if __name__ == "__main__":
    # Primește input-ul de la utilizator
    ha = int(input("Introduceti inaltimea primului stalp: "))
    hb = int(input("Introduceti celui de-al doilea stalp: "))
    d = int(input("Introduceti distanta dintre cei doi stalpi: "))
    # Calculam distanta dintre soarece si baza si o salvam in variabila x
    x = distanta_soarece_baza(ha, hb, d)

    # Verifică dacă input-ul este valid și afișează rezultatul
    if validare(ha, hb, d, x):
        print("Datele de intrare corespund restricțiilor impuse.")
        print(int(x))
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")