Cod sursa(job #2052203)

Utilizator rangal3Tudor Anastasiei rangal3 Data 30 octombrie 2017 10:52:44
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

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

int n;
struct Punct{
    float x,y;
}A[100003];

inline float plan(int i,int j,int p)
{
   return (A[p].x - A[i].x)*(A[j].y - A[i].y) + (A[i].y - A[p].y)*(A[j].x - A[i].x);
}

int main()
{
    fin>>n;
    for(int i=1; i<=n; ++i)
        fin>>A[i].x>>A[i].y;
    //originea O (0,0) sau A[0] = {0,0}
    double aria = 0;
    for(int i=1; i<n; ++i)
    //triunghiul A[i],A[i+1],O
    {
        float a = (A[i].x * A[i+1].y - A[i+1].x*A[i].y)/2;
        aria += (plan(i,i+1,0) > 0 ? -a:a);
    }

    fout<<aria<<"\n";

}