Pagini recente » Cod sursa (job #1352333) | Cod sursa (job #650357) | Cod sursa (job #2403873) | Cod sursa (job #2526676) | Cod sursa (job #2763657)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
const int NMAX = 100000;
struct pct
{
long double x, y;
};
long double GetArea(pct A, pct B, pct C)
{
return A.y * B.x - A.x * B.y + B.y * C.x - B.x * C.y + C.y * A.x - C.x * A.y;
}
int N;
pct v[NMAX + 5];
int main()
{
fin >> N;
for(int i = 1; i <= N; i++)
fin >> v[i].x >> v[i].y;
v[N + 1].x = v[1].x, v[N + 1].y = v[1].y;
long double area = 0;
for(int i = 1; i <= N; i++)
area += GetArea({0, 0}, v[i], v[i + 1]);
area = max(area, -area);
fout << fixed << setprecision(12) << area / 2 << '\n';
return 0;
}