Cod sursa(job #891276)

Utilizator SpiderManSimoiu Robert SpiderMan Data 25 februarie 2013 15:18:52
Problema Aria Scor Ascuns
Compilator cpp Status done
Runda Marime 0.69 kb
# include <cstdio>
# include <cmath>

const char *FIN = "aria.in", *FOU = "aria.out";
const int MAX = 100005;

struct punct {
    double x, y;
} vec[MAX];
int N;

inline long double arie (punct *vec, int sz) {
    long double sol = 0;
    vec[sz].x = vec[0].x, vec[sz++].y = vec[0].y; // vec[N] = vec[0]
    for (int i = 0; i + 1 < sz; ++i)
        sol += (long double) (vec[i].x * vec[i + 1].y - vec[i + 1].x * vec[i].y);
    return fabs (sol * 0.5);
}

int main (void) {
    freopen (FIN, "r", stdin);
    freopen (FOU, "w", stdout);

    scanf ("%d", &N);
    for (int i = 0; i < N; ++i)
        scanf ("%lf %lf", &vec[i].x, &vec[i].y);
    printf ("%.4Lf", arie (vec, N));
}