Cod sursa(job #1687772)

Utilizator calin1Serban Calin calin1 Data 13 aprilie 2016 08:06:36
Problema Aria Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int n;

struct coord
{
    long double x,y;

} coordonate[100000];

void citire()
{
    scanf("%d\n",&n);
    for(int i=0; i<n; i++)
    {
        scanf("%Lf %Lf\n",&coordonate[i].x,&coordonate[i].y);

        coordonate[i].x += 1000000;
        coordonate[i].y += 1000000;
    }

    coordonate[n].x = coordonate[0].x;
    coordonate[n].y = coordonate[0].y;
}

void afisare(long double z)
{
    if(z==(int)z)
    {
        printf("%.0Lf",z);
        return;
    }
    if((z*10)==(int)(z*10))
    {
        printf("%.1Lf",z);
        return;
    }
    if((z*100)==(int)(z*100))
    {
        printf("%.2Lf",z);
        return;
    }
    if((z*1000)==(int)(z*1000))
    {
        printf("%.3Lf",z);
        return;
    }
    if((z*10000)==(int)(z*10000))
    {
        printf("%.4Lf",z);
        return;
    }

    printf("%.5Lf",z);
    return;
}

void prelucrare()
{
    long double arie=0;
    for(int i=0; i<n; i++)
    {
        arie+=((coordonate[i].y+coordonate[i+1].y)*(coordonate[i+1].x-coordonate[i].x));
    }

    arie=abs(arie/2);

    afisare(arie);
}

int main()
{
    freopen("aria.in","r",stdin);
    freopen("aria.out","w",stdout);

    citire();
    prelucrare();

    return 0;
}