Pagini recente » Cod sursa (job #2249376) | Cod sursa (job #122546) | Cod sursa (job #1502186) | Cod sursa (job #497923) | Cod sursa (job #1979893)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("aria.in");
ofstream g("aria.out");
struct punct
{
double x, y;
};
void citire(punct v[], int &n)
{
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i].x >> v[i].y;
}
double det_arie_triunghi(punct p1, punct p2, punct p3)
{
return (p1.x - p2.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p2.y);
}
double arie_poligon(punct v[], int n)
{
double A = 0;
for(int i = 2; i < n; i++)
A += det_arie_triunghi(v[1], v[i], v[i + 1]);
if(A < 0)A = -A;
A /= 2;
return A;
}
int main()
{
int n;
punct v[100001];
citire(v, n);
double A = arie_poligon(v, n);
g.setf(ios::fixed);
g.precision(5);
g << A;
f.close();
g.close();
return 0;
}