Cod sursa(job #935873)

Utilizator Master011Dragos Martac Master011 Data 4 aprilie 2013 23:35:25
Problema Aria Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<cstdio>
#define CLOSE fclose(in); fclose(out); return 0;
using namespace std;
FILE *in,*out;

const int N = 100100;
struct punct {
    double x;
    double y;
}v[N];
int n;

void citire(){
    fscanf(in,"%d",&n);

    for(register int i =1 ; i<=n; ++i)
        fscanf(in,"%lf%lf",&v[i].x,&v[i].y);
}

inline double modul(double a){
    return a>=0 ? a : -a;
}

double triunghi(punct a, punct b, punct c){
    double arie ;
    arie=(b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
    arie/=2;
    return modul(arie);
}

void rezolvare(){
    double arie=0;
    for(register int i=2; i<n; ++i){
        arie+=triunghi(v[1],v[i],v[i+1]);
    }
    fprintf(out,"%lf",arie);
}

int main(){
    in=fopen("aria.in","r");
    out=fopen("aria.out","w");

    citire();
    rezolvare();

    CLOSE
}