Cod sursa(job #1800903)

Utilizator FredyLup Lucia Fredy Data 8 noiembrie 2016 12:02:16
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

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

#define nmax 100003
struct p{int x,y ;};
p v[nmax];
unsigned long long aria,punctelat;


int cmmdc(int a, int b)
{
    if(b==0)
        return a;
    return cmmdc(b,a%b);
}


int main()
{
    int cn,n,i;

    fin>>n;

    for(i=1; i<=n; i++)
        fin>>v[i].x>>v[i].y;

    v[n+1]=v[1];
    cn=0;

    for(i=1; i<=n; i++)
    {
         aria+=1ull*(1ull*v[i].x*v[i+1].y - 1ull*v[i].y*v[i+1].x);
         cn+=cmmdc( abs(v[i+1].x-v[i].x) , abs(v[i+1].y-v[i].y) ) ;
    }

    punctelat=(long double)abs(aria)/2-(long double)cn/2+1.0;
    fout<<punctelat;


    fin.close();
    fout.close();
    return 0;
}