Pagini recente » Cod sursa (job #1095489) | Cod sursa (job #714692) | Cod sursa (job #1121935) | Cod sursa (job #368393) | Cod sursa (job #1800903)
#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;
}