Pagini recente » Cod sursa (job #3166082) | Cod sursa (job #121919) | Cod sursa (job #1494639) | Cod sursa (job #3240853) | Cod sursa (job #2064657)
#include <fstream>
#include <cmath>
using namespace std;
FILE * fin = fopen("aria.in", "r");
FILE * fout = fopen("aria.out", "w");
struct punct
{
double x, y;
};
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);
double arie = calc_arie(puncte, n);
fprintf(fout, "%0.5lf", arie);
return 0;
}
double calc_arie(punct * a, int n)
{
double arie = 0;
for (int i = 2; i <= n - 1; i++)
{
double x1 = a[1].x, y1 = a[1].y;
double x2 = a[i].x, y2 = a[i].y;
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;
}