Cod sursa(job #1107661)

Utilizator andrei.sfrentSfrent Andrei andrei.sfrent Data 14 februarie 2014 02:04:36
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>

using namespace std;

struct punct { long long x, y; };

int N;
punct v[100000];

void read() {
  scanf("%d", &N);
  for(int i = 0; i < N; ++i) {
    scanf("%lld%lld", &v[i].x, &v[i].y);
  }
}

int main(int argc, char *argv[]) {
  freopen("aria.in", "r", stdin);
  freopen("aria.out", "w", stdout);

  read();

  long long aria = 0;
  for(int i = 1; i < N - 1; ++i) {
    long long dx1 = v[i].x - v[0].x;
    long long dy1 = v[i].y - v[0].y;
    long long dx2 = v[i + 1].x - v[0].x;
    long long dy2 = v[i + 1].y - v[0].y;
    long long det = (dx1 * dy2 - dx2 * dy1);
    aria += det;
  }

  printf("%lld.%d\n", aria / 2, aria % 2 ? 5 : 0);

  return 0;
}