Pagini recente » Cod sursa (job #1596027) | Cod sursa (job #2469548) | Cod sursa (job #2970020) | Cod sursa (job #1932713) | Cod sursa (job #2198726)
#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;
}