Cod sursa(job #1528308)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 19 noiembrie 2015 14:20:20
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <cstdio>
using namespace std;

const int DIM = (1<<17);
struct str { double x,y; } V[DIM];
double Area; int N;

inline double abs (double X) {
    return (X > 0) ? X : -X;
}

inline double getArea (double X1, double Y1, double X2, double Y2, double X3, double Y3) {
    return (X3 - X1) * (Y2 - Y1) - (X2 - X1) * (Y3 - Y1);
}

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

    scanf ("%d", &N);

    for (int i = 1; i <= N; i ++)
        scanf ("%lf %lf", &V[i].x, &V[i].y);

    V[++N] = V[1];

    for (int i = 1; i < N; i ++)
        Area += getArea (V[i].x, V[i].y, V[i+1].x, V[i+1].y, 0, 0);

    printf ("%.5f\n", abs (Area / 2));

    fclose (stdin );
    fclose (stdout);

    return 0;
}