Pagini recente » Cod sursa (job #2172135) | Cod sursa (job #2454072) | Cod sursa (job #2491151) | Cod sursa (job #1857803) | Cod sursa (job #3250185)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream input("aria.in");
ofstream output("aria.out");
struct Pos
{
double x;
double y;
};
double calc_Dist(Pos point1, Pos point2)
{
return sqrt((point1.x - point2.x)*(point1.x - point2.x) + (point1.y - point2.y)*(point1.y - point2.y));
}
double calc_Area(Pos point1, Pos point2, Pos point3)
{
double a = calc_Dist(point1, point2);
double b = calc_Dist(point2, point3);
double c = calc_Dist(point1, point3);
double p = (a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
int main()
{
int N;
input >> N;
vector<Pos> points(N);
for(int i = 0; i < N; i++){
input >> points[i].x;
input >> points[i].y;
}
double area = calc_Area(points[0], points[1], points[2]);
for(int i = 3; i < N; i++){
double new_area = calc_Area(points[0], points[i-1], points[i]);
area += new_area;
}
output << area;
return 0;
}