Cod sursa(job #1504780)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 18 octombrie 2015 11:49:06
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <iomanip>
using namespace std;

ifstream is("aria.in");
ofstream os("aria.out");

#define MAX_N 100005
typedef pair<double, double> Pct;

double Sup;
int n;
Pct v[MAX_N];

void Read();
void Arie();
inline double CrossProduct( const Pct& A, const Pct& B );

int main()
{
    Read();
    Arie();

    os << fixed;
    os << setprecision(5) << Sup;

    is.close();
    os.close();
    return 0;
}

void Read()
{
    is >> n;
    for ( int i = 1; i <= n; i++ )
        is >> v[i].first >> v[i].second;
}

void Arie()
{
    Sup = 0;
    v[n+1] = v[1];
    for ( int i = 1; i <= n; i++ )
        Sup += (CrossProduct(v[i], v[i+1]) / 2);
}

inline double CrossProduct( const Pct& A, const Pct& B )
{
    return (A.first * B.second - A.second * B.first);
}