Cod sursa(job #1687760)

Utilizator calin1Serban Calin calin1 Data 13 aprilie 2016 07:26:38
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 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);
    }
}

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

void prelucrare()
{
    long double arie=0;
    for(int i=0; i<n-1; 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;
}