Cod sursa(job #2562292)

Utilizator popashtefan10Popa Stefan popashtefan10 Data 29 februarie 2020 13:16:57
Problema Aria Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <cstdio>
#define NMAX 100000

using namespace std;

struct point {
  long double x, y;
} p[NMAX + 5];

int n;
long double aria;

long double cp(point p1, point p2) {
  return p1.x * p2.y - p1.y * p2.x;
}

double modul(double x) {
  if(x >= 0)
    return x;
  return -x;
}

int main() {
  freopen("aria.in", "r", stdin);
  freopen("aria.out", "w", stdout);
  double x, y;

  scanf("%d", &n);
  for(int i = 1; i <= n; i++) {
    scanf("%lf %lf", &x, &y);
    p[i].x = (long double)x;
    p[i].y = (long double)y;
  }
  for(int i = 1; i <= n; i++)
    aria += cp(p[i], p[i % n + 1]) / 2;
  printf("%.15f", modul(aria));

  return 0;
}