Pagini recente » Cod sursa (job #276468) | Cod sursa (job #163757) | Cod sursa (job #168768) | Profil Kitus | Cod sursa (job #2064664)
#include <fstream>
#include <cmath>
using namespace std;
FILE * fin = fopen("aria.in", "r");
FILE * fout = fopen("aria.out", "w");
struct punct
{
long double x, y;
};
long double calc_arie(punct *, int);
int n;
punct puncte[100005];
int main()
{
fscanf(fin, "%d", &n);
for (int i = 1; i <= n; i++)
fscanf(fin, "%Lf%Lf", &puncte[i].x, &puncte[i].y);
long double arie = calc_arie(puncte, n);
fprintf(fout, "%0.5Lf", arie);
return 0;
}
long double calc_arie(punct * a, int n)
{
long double arie = 0;
for (int i = 2; i <= n - 1; i++)
{
long double x1 = a[1].x, y1 = a[1].y;
long double x2 = a[i].x, y2 = a[i].y;
long double x3 = a[i + 1].x, y3 = a[i + 1].y;
arie += fabs((x1 * y2 + x2 * y3 + x3 * y1 - x3 * y2 - x2 * y1 - x1 * y3) / 2.0);
}
return arie;
}