Cod sursa(job #1269575)

Utilizator proflaurianPanaete Adrian proflaurian Data 22 noiembrie 2014 10:48:48
Problema Aria Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
struct punct
{
    double X,Y;
    punct()
    {
        X=Y=0.0;
    }
    punct(double x,double y)
    {
        X=x;Y=y;
    }
};
struct trapez
{
    punct A,B;
    trapez()
    {
        A=punct(0.0,0.0);
        B=punct(0.0,0.0);
    }
    trapez(punct a,punct b)
    {
        A=a;B=b;
    }
    trapez(double x1,double y1,double x2,double y2)
    {
        A=punct(x1,y1);
        B=punct(x2,y2);
    }
    double aria()
    {
        return (A.X-B.X)*(A.Y+B.Y)/2;
    };
};
int n;
double xd,yd,xs,ys,xi,yi,sol;
int main()
{
    fin>>n;
    fin>>xi>>yi;
    xs=xi;ys=yi;
    for(int i=2;i<=n;i++)
    {
        fin>>xd>>yd;
        sol+=trapez(xs,ys,xd,yd).aria();
        xs=xd;ys=yd;
    }
    xd=xi;yd=yi;
    sol+=trapez(xs,ys,xd,yd).aria();
    if(sol<=-0.00000001)sol=-sol;
    fout<<fixed<<setprecision(7)<<sol;

    return 0;
}