Cod sursa(job #1528307)

Utilizator robx12lnLinca Robert robx12ln Data 19 noiembrie 2015 14:18:49
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<iomanip>
#define x first
#define y second
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
int n;
double aria;
pair<double,double> v[100005];
double A( pair<double,double> a, pair<double,double> b, pair<double,double> c ){
    return ( (c.x - a.x) * (b.y - a.y) - (b.x - a.x) * ( c.y - a.y ) );
}
int main(){
    fin >> n;
    for( int i  = 1; i <= n; i++ ){
        fin>> v[i].x >> v[i].y ;
    }
    n++;
    v[n] = v[1];
    v[0].x = 0;
    v[0].y = 0;
    aria = 0;
    for( int i = 1; i <= n - 1; i++ ){
        aria += A( v[0], v[i], v[i+1] );
    }
    if( aria < 0){
        aria = 0 - aria;
    }
    fout<< setprecision(6) << fixed << aria/2;
    return 0;
}