Pagini recente » Istoria paginii runda/igorj_mentorat1/clasament | Cod sursa (job #1130889) | Cod sursa (job #484271) | Cod sursa (job #1234217) | Cod sursa (job #2415504)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
int N;
pair <long double, long double> v[100005];
long double area;
long double Mod(long double A)
{
return max(A, -A);
}
long double Det(pair <long long, long long> A, pair <long long, long long> B, pair <long long, long long> C)
{
return 0.5 * (B.first * A.second - A.first * B.second + C.first * B.second - B.first * C.second + A.first * C.second - C.first * A.second);
}
int main()
{
fin >> N;
for(int i = 1; i <= N; i++)
fin >> v[i].first >> v[i].second;
for(int i = 1; i <= N; i++)
{
pair <long double, long double> A = v[i];
pair <long double, long double> B = ((i == N) ? v[1] : v[i + 1]);
area += Det(v[1], A, B);
}
fout << fixed << setprecision(12) << Mod(area) << '\n';
return 0;
}