Cod sursa(job #2198726)

Utilizator MateiBarbaBarba Matei MateiBarba Data 25 aprilie 2018 11:01:45
Problema Lapte Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

ifstream f("copaci.in");
ofstream g("copaci.out");

const int N = 100002;
int n;

struct copaci
{
    int x;
    int y;
}Figura[N+2];

double Arie(){
    double s = 0;
    for(int i = 0 ; i < n ; i++){
        s += (Figura[i].x*Figura[i+1].y-Figura[i+1].x*Figura[i].y);
    }
    return abs(s*0.5);
}

int cmmdc(int x, int y){
    return y?cmmdc(y,x%y):x;
}

int main()
{
    f >> n;
    for(int i = 0 ; i < n ; i++){
        f >> Figura[i].x >> Figura[i].y;
    }

    Figura[n] = Figura[0];

    long long int nr = 0;

    for(int i = 0 ; i < n ; i++){
        nr += cmmdc(abs(Figura[i].x-Figura[i+1].x),abs(Figura[i].y-Figura[i+1].y));
    }

    g << (long long int)(Arie() - (double)(nr/2) + 1) << "\n";
    return 0;
}