Cod sursa(job #1788726)

Utilizator elffikkVasile Ermicioi elffikk Data 26 octombrie 2016 12:33:25
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;

struct Point {
    double x, y;
};

double det(Point a, Point b, Point c) {
    return a.x*(b.y-c.y) + b.x*(c.y-a.y) + c.x*(a.y-b.y);
}

main() {
    ifstream cin("aria.in");
    ofstream cout("aria.out");
    int n;
    cin>>n;
    vector<Point> a(n);
    for (int i = 0; i < n; i++) {
        cin>>a[i].x>>a[i].y;
    }
    double s = 0;
    Point z = Point{0,0};
    for (int i = 1; i < a.size(); i++) {
        s+=det(z, a[i-1], a[i]);
    }
    s+=det(z, a.back(), a[0]);
    if (s < 0) {
        s = -s;
    }
    cout<<fixed;
    cout<<setprecision(9)<<s/2;
}