Cod sursa(job #1463639)

Utilizator mirupetPetcan Miruna mirupet Data 21 iulie 2015 13:43:50
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<cstdio>
#include<cassert>
#include<cmath>
#define DIM 100005
using namespace std;

struct nume
{
    double x, y;
};
nume v[DIM];

int N, i;
double A;

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

        assert(scanf ("%d", &N) == 1);
        assert (1 <= N && N <= 100000);

        for (i = 1; i <= N; i++)
        {
            assert(scanf("%lf %lf", &v[i].x, &v[i].y) == 2);
            assert (-10000000 <= v[i].x && v[i].x <= 10000000);
            assert (-10000000 <= v[i].y && v[i].y <= 10000000);
        }
        v[N+1] = v[1];
        for (i = 1; i <= N; i++)
            A += (v[i].x * v[i + 1].y - v[i + 1].x * v[i].y);
        if ( A < 0)
            A = -A;
        printf("%lf", A / 2.0);
    }