Cod sursa(job #1171849)

Utilizator roxana.istratePoenaru Roxana roxana.istrate Data 16 aprilie 2014 14:57:07
Problema Aria Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#include <stdlib.h>
#include <iomanip>
#include <cmath>
#define max 1000000
using namespace std;
 
ifstream fin("aria.in");
ofstream fout("aria.out");
 
int N;
vector< pair<double,double> > points;
 
double tri_area(pair<double, double> p1, pair<double,double> p2){
     
    return p1.first * p2.second - p2.first * p1.second;
}
 
double find_area(){
    double area = 0;
    for(int i = 0; i < N-1; i++){
        area += tri_area(points[i],points[i+1]);
    }
    area += tri_area(points[N-1], points[0]);
    return abs(area)/2;
}
 
int main(){
    fin >> N;
    double x, y;
    // aleg arbitrar (0, 0)
    for(int i = 0; i < N; i++){
        fin >> x >> y;
        points.push_back(make_pair(x,y));
    }
    fout << std::setprecision(5) << std::fixed << find_area() << "\n";
    return 0;
}