Pagini recente » Cod sursa (job #3337487) | Cod sursa (job #3333694) | Cod sursa (job #3345196) | Cod sursa (job #3345199) | Cod sursa (job #3312784)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
int n;
pair<int, int> a[100005];
int Aria(pair<int, int> A, pair<int, int> B)
{
return A.first * B.second - A.second * B.first;
}
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i].first >> a[i].second;
// sortare după y, apoi după x
sort(a + 1, a + n + 1, [](auto &p1, auto &p2) {
if (p1.second != p2.second)
return p1.second < p2.second;
return p1.first < p2.first;
});
long long aria = 0;
a[n + 1] = a[1];
for (int i = 2; i <= n + 1; i++)
aria += Aria(a[i - 1], a[i]);
fout << fixed << setprecision(6) << fabs(aria) / 2.0 << "\n";
return 0;
}