Cod sursa(job #2849730)

Utilizator rARES_4Popa Rares rARES_4 Data 15 februarie 2022 17:53:29
Problema Aria Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("copaci.in");
ofstream g ("copaci.out");
int n;
struct pct
{
    int x,y;
} puncte[1000001];
void citire()
{
    f >> n;
    for(int i = 1; i<=n; i++)
        f >>puncte[i].x >> puncte[i].y;
    puncte[n+1] = puncte[1];
}
double calc_arie()
{
    // calculam aria din determinant
    double arie  = 0.0;
    for(int i = 1;i<=n;i++)
    {
            arie = arie + puncte[i].x * puncte[i+1].y - puncte[i].y*puncte[i+1].x;
    }
    arie = (arie*1.00)/2;
    arie = abs(arie);
    return arie;
}
int aflare_puncte_pe_contur_exterior()
{
    int cnt = 0;
    for(int i = 1;i<=n;i++)
    {
        cnt+=__gcd(abs(puncte[i].x-puncte[i+1].x),abs(puncte[i].y-puncte[i+1].y));
    }
    return cnt;
}
int main()
{
    citire();
    // formula lui pick
    int puncte_int = calc_arie() -  (aflare_puncte_pe_contur_exterior()*1.00)/2+1;
    g << puncte_int<< endl;

}