Pagini recente » Cod sursa (job #279827) | Cod sursa (job #288213) | Istoria paginii runda/oji3_sim | Arhiva de probleme | Cod sursa (job #2929924)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
///varianta cu trapez
struct punct
{
long double x, y;
};
vector <punct> poligon;
int n;
long double x, y;
long double determinant(punct A, punct B, punct C)
{
return A.x * B.y + B.x * C.y + C.x * A.y - B.y * C.x - C.y * A.x - A.y * B.x;
}
long double determinant2(punct A, punct B)
{
return A.x * B.y - B.x * A.y;
}
void citire()
{
fin >> n;
for(int i = 0; i < n; i++)
{
fin >> x >> y;
punct t;
t.x = x;
t.y = y;
poligon.push_back(t);
}
}
long double arie()
{
long double total = 0;
for(int i = 0; i < n - 1; i++)
total += (poligon[i].y + poligon[i + 1].y) * (poligon[i + 1].x - poligon[i].x);
total += (poligon[n - 1].y + poligon[0].y) * (poligon[0].x - poligon[n - 1].x);
return 0.5 * abs(total);
}
int main()
{
citire();
fout << fixed << setprecision(5) << arie();
return 0;
}