Cod sursa(job #2552075)

Utilizator MatteoalexandruMatteo Verzotti Matteoalexandru Data 20 februarie 2020 15:54:57
Problema Aria Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.52 kb
/*
                `-/oo+/-   ``
              .oyhhhhhhyo.`od
             +hhhhyyoooos. h/
            +hhyso++oosy- /s
           .yoooossyyo:``-y`
            ..----.` ``.-/+:.`
                   `````..-::/.
                  `..```.-::///`
                 `-.....--::::/:
                `.......--::////:
               `...`....---:::://:
             `......``..--:::::///:`
            `---.......--:::::////+/`
            ----------::::::/::///++:
            ----:---:::::///////////:`
            .----::::::////////////:-`
            `----::::::::::/::::::::-
             `.-----:::::::::::::::-
               ...----:::::::::/:-`
                 `.---::/+osss+:`
                   ``.:://///-.
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <iomanip>
#include <map>
#include <cmath>

using namespace std;

const int INF = 2e9;
const int N = 1e5;

pair <double, double> p[5 + N];

int main() {
    freopen("aria.in", "r", stdin);
    freopen("aria.out", "w", stdout);
    int n;
    long double rez;
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> p[i].first >> p[i].second;
    p[n + 1] = p[1];

    rez = 0;
    for(int i = 1; i <= n; i++)
        rez += (p[i].first * p[i + 1].second - p[i + 1].first * p[i].second);

    if(rez < 0) rez = -rez;
    rez /= 2.0;

    cout << fixed << setprecision(6) << rez;
    return 0;
}