Cod sursa(job #2530394)

Utilizator popashtefan10Popa Stefan popashtefan10 Data 24 ianuarie 2020 19:07:01
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <cstdio>
#define NMAX 100000

using namespace std;

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

int n;
point old, crt;
long double area = 0;

long double det(point a, point b) {
  return a.x * b.y - a.y * b.x;
}

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

  scanf("%d", &n);
  for(int i = 1; i <= n; i++) {
    scanf("%lf %lf", &d1, &d2);
    v[i].x = d1;
    v[i].y = d2;
  }
  old.x = v[1].x;
  old.y = v[1].y;
  for(int i = 2; i <= n; i++) {
    crt.x = v[i].x;
    crt.y = v[i].y;
    area += det(old, crt);
    old = crt;
  }
  crt.x = v[1].x;
  crt.y = v[1].y;
  area += det(old, crt);

  if(area < 0)
    printf("%lf", -area / 2);
  else
    printf("%lf", area / 2);

  return 0;
}