Cod sursa(job #1456602)

Utilizator Theodor1000Cristea Theodor Stefan Theodor1000 Data 1 iulie 2015 13:02:24
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <cstdio>
#include <algorithm>

#define f first
#define s second

using namespace std;

pair <double, double> v[100010];

inline double det (pair <double, double> x, pair <double, double> y, pair <double, double> z)
{
    return 1.0 * (x.f * y.s + y.f * z.s + x.s * z.f - z.f * y.s - x.f * z.s - x.s * y.f);
}

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

    int n;
    scanf ("%d", &n);

    for (int i = 1; i <= n; ++i)
        scanf ("%lf %lf", &v[i].f, &v[i].s);

    v[n + 1] = v[1];

    double sup = 0.0;
    for (int i = 1; i <= n; ++i)
    {
        double x = det (make_pair (0.0, 0.0), v[i], v[i + 1]);
        x *= 10000.0;
        x = (double)(int)x;
        x /= 10000.0;

        sup += x;

        sup *= 10000.0;
        sup = (double)(int)sup;
        sup /= 10000.0;
    }

    sup /= 2.0;
    sup *= 10000.0;
    sup = (double)(int)sup;
    sup /= 10000.0;

    printf ("%.5lf\n", sup);

    return 0;
}