Cod sursa(job #2221781)

Utilizator inquisitorAnders inquisitor Data 15 iulie 2018 20:05:53
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#include <utility>

using namespace std;

int n;
pair<long double, long double> puncte[100005];

void citire(){
    scanf("%d", &n);

    long double x, y;

    for(int i = 0; i < n; i++){
        scanf("%Lf%Lf", &x, &y);

        puncte[i] = {x, y};
    }

    puncte[n] = puncte[0];

    n++;
}

long double absx(long double x){
    if(x < 0){
        return -x;
    }
    return x;
}

void solve(){
    long double arie = 0.0;

    for(int i = 1; i < n; i++){
        arie += puncte[i - 1].first * puncte[i].second - puncte[i].first * puncte[i - 1].second;
    }

    printf("%Lf", absx(arie / 2));
}

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

    citire();
    solve();

    return 0;
}