Cod sursa(job #2216590)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 27 iunie 2018 14:10:54
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream fin("aria.in");
ofstream fout("aria.out");

int N;

struct Punct
{
  double x,y;
} P[100002];

void Read()
{
   fin >> N;

   for( int i = 1; i <= N; ++i )
     fin >> P[i].x >> P[i]. y;

   fin.close();
}

double Arie( Punct A, Punct B, Punct C )
{
  double D = A.x * B.y + B.x * C.y + C.x * A.y -
             C.x * B.y - A.x * C.y - B.x * A.y;

  return D / 2;
}

void Do()
{
   double Arie_poligon = 0;

   Punct temp;

   temp.x = 0;
   temp.y = 0;

   for( int i = 1; i < N; ++i )
     Arie_poligon += Arie( P[i], P[i+1], temp );

   Arie_poligon += Arie( P[N], P[1], temp );

   fout << fixed << setprecision(6) << Arie_poligon << '\n';

   fout.close();
}

int main()
{
    Read();
    Do();

    return 0;
}