Cod sursa(job #899569)

Utilizator The_DisturbedBungiu Alexandru The_Disturbed Data 28 februarie 2013 15:12:17
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
struct punct
{
    double x,y;
}v[100013];
int n,i;
double a,minx,miny;
int main()
{
    freopen("aria.in","r",stdin);
    freopen("aria.out","w",stdout);
    scanf("%d",&n);
    scanf("%lf%lf",&v[0].x,&v[0].y);
    minx=v[0].x;
    miny=v[0].y;
    for(i=1;i<n;++i)
    {
        scanf("%lf%lf",&v[i].x,&v[i].y);
        if(v[i].x<minx)minx=v[i].x;
        if(v[i].y<miny)miny=v[i].y;
    }
    if(minx<0)minx=1-minx; else minx=0;
    if(miny<0)miny=1-miny; else miny=0;
    for(i=0;i<n;++i)
    {
        v[i].x+=minx;
        v[i].y+=miny;
    }
    v[n]=v[0];
    for(i=0;i<n;++i) a+=(v[i].x*v[i+1].y-v[i].y*v[i+1].x);
    if(a<0)a=-a;
    printf("%lf",a/2);
    return 0;
}