# PBinfo #3817 – ArieTrapez – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dau lungimile laturilor unui trapez ABCD cu AB||CD. Aflati aria acestuia.

Date de intrare
Programul citește de la tastatură lungimile laturilor AB, BC, CD, AD.

Date de ieșire
Programul va afișa pe ecran numărul A reprezentand aria trapezului, cu 2 zecimale exacte, daca trapezul este valid, altfel se afiseaza mesajul Imposibil.

Restricții și precizări

1 ≤ AB, BC, CD, AD ≤ 1000

Exemplul 1
Intrare

6 4 8 3
Ieșire

20.33
Exemplul 2
Intrare

6 4 15 3
Ieșire

Imposibil
Exemplul 3
Intrare

1000 999 998 997
Ieșire

Imposibil

## Cod sursă C++

```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    long double a,b,c,d,Atriunghi,htriunghi,p;
    cin>>a>>b>>c>>d;
    if(a+b+c>d && b+c+d>a && a+c+d>b && a+b+d>c && d+b>abs(c-a) && d+abs(c-a)>b && b+abs(c-a)>d)
    {
        p=(d+b+abs(c-a))/2;
        Atriunghi=sqrt(p*(p-d)*(p-b)*(p-abs((c-a))));
        htriunghi=(2*Atriunghi)/abs(c-a);
        unsigned long long int A=((a+c)*htriunghi/2)*100;
        cout<<A/100<<"."<<A/10%10<<A%10;
    }
    else
        cout<<"Imposibil";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3817)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3817/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3817/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
