Pagini recente » Cod sursa (job #819496) | Cod sursa (job #1397403) | Cod sursa (job #2771772) | Cod sursa (job #583785) | Cod sursa (job #957254)
Cod sursa(job #957254)
#include <cstdio>
#include <vector>
#include <algorithm>
#include <utility>
#include <cmath>
#include <iostream>
typedef std::pair<double,double> Point;
typedef std::vector<Point> Polygon;
Polygon p;
long double Result;
inline void Read (void)
{
std::freopen("aria.in","r",stdin);
int n;
std::scanf("%d\n",&n);
double x, y;
while (n)
{
std::scanf("%lf %lf",&x,&y);
p.push_back(std::make_pair(x,y));
--n;
}
std::fclose(stdin);
}
inline void Print (void)
{
std::freopen("aria.out","w",stdout);
std::printf("%.5lf\n",Result);
std::fclose(stdout);
}
inline double Area (Polygon &p)
{
const int END(p.size());
p.push_back(p.front());
double result(0);
for (int i(0) ; i < END ; ++i)
result += p[i].first * p[i + 1].second - p[i].second * p[i + 1].first;
p.pop_back();
return std::abs(result) / 2;
}
int main (void)
{
Read();
Result = Area(p);
Print();
return 0;
}