Pagini recente » Cod sursa (job #106126) | Cod sursa (job #2247565) | Cod sursa (job #1312411) | Cod sursa (job #1806037) | Cod sursa (job #2887211)
#include <fstream>
#define int long long
///pick ( arie cu determinant)
using namespace std;
ifstream cin("copaci.in");
ofstream cout("copaci.out");
const int N = 2e6 + 1;
struct da
{
int x, y;
} a[N];
int cmmmdc(int a, int b)
{
if(!b)
return a;
else
return cmmmdc(b, a % b);
}
int ab(int x)
{
if(x > 0)
return x;
return -x;
}
signed main()
{
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
{
cin >> a[i].x >> a[i].y;
}
a[n + 1] = a[1];
int p = 0;
int arie = 0;
for (int i = 1; i <= n; ++i)
{
p += cmmmdc(ab(a[i + 1].x - a[i].x), ab(a[i + 1].y - a[i].y));
arie += (a[i].x*a[i+1].y-a[i+1].x*a[i].y);
}
arie /= 2;
cout << arie + 1 - (p / 2) << '\n';
return 0;
}