Cod sursa(job #3250185)

Utilizator BucsMateMate Bucs BucsMate Data 19 octombrie 2024 16:04:25
Problema Aria Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#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;
}