Pagini recente » Cod sursa (job #1561091) | Cod sursa (job #2081769) | Cod sursa (job #3314168) | Cod sursa (job #3308470) | Cod sursa (job #3309362)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
long double determinant(pair <long double,long double>A,pair<long double,long double>B,pair<long double,long double>C){
return A.first*B.first+B.first*C.second+C.first*A.second-A.second*B.first-B.second*C.first-C.second*A.first;
}
long double get SegmentArea(pair<long double,long double>A,pair<long double,long double>B){
return determinant({0,0},A,B);
}
pair <long double,long double>v[100005];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> v[i].first >> v[i].second;
}
v[n + 1] = v[1];
long double aria = 0;
for (int i = 1; i <= n; ++i) {
aria += getSegmentArea(v[i], v[i + 1]);
}
long double result = aria / 2.0;
cout << fixed << setprecision(10) << result;
return 0;
}