Cod sursa(job #3288690)

Utilizator hiken056Stefan Rusu hiken056 Data 23 martie 2025 17:08:55
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h> 

using namespace std;

ifstream fin("aria.in");
ofstream fout("aria.out");

const int MAXN = 1e5 + 5;
struct Point {
    double x;
    double y;
};

double arieTriunghi ( Point A, Point B ) {
    return ( A.x * B.y - A.y * B.x);
}

int N, x, y;
double aria;
//aria poligonului o putem afla prin triangularizarea acestuia
// iar apoi facem suma ariilor
// luam arbitrat punctul P(0, 0) cu care formam triunghiuri (P Ai Ai+1) (consideram si ca A1 = An+1)
// aria unui triunghi o sa fie 1/2(xi*yi+1 - yi*xi+1 )


int main() {

    fin >> N;
    Point first, firstPoint;
    fin >> first.x >> first.y;
    firstPoint = first;
    //mai usor asa fara sa retin un vector de puncte
    for ( int i = 1; i < N; ++ i ) {
        Point second;
        fin >> second.x >> second.y;
        aria += arieTriunghi(first, second);
        first = second;
    }
    //ultimul triunghi cu PAnA1
    //first ii An
    aria += arieTriunghi(firstPoint, first);
    aria /= 2;
    // fixed << setprecision(6) = precizie de pana la 10^-5
    // fabs = valoarea in modul
    fout << fixed << setprecision(6) << fabs(aria);
}