Pagini recente » Cod sursa (job #3237465) | Cod sursa (job #1115017) | Cod sursa (job #920668) | Cod sursa (job #1193307) | Cod sursa (job #1892650)
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;
template <class T>
class punct
{
public:
T x, y;
punct(T x = 0, T y = 0): x(x), y(y)
{
}
punct operator+(punct p)
{
return punct(x + p.x, y + p,y);
}
static T arie_triunghi(punct a, punct b, punct c)
{
return 0.5 * (a.x * b.y + b.x * c.y + c.x * a.y - c.x * b.y - a.x * c.y - b.x * a.y);
}
static T arie_origine(punct a, punct b)
{
return 0.5 * (a.x * b.y - b.x * a.y);
}
};
vector<punct<double> > v;
int N;
ifstream fin("aria.in");
ofstream fout("aria.out");
int main()
{
fin >> N;
punct<double> p;
for (int i = 0; i < N; i++)
{
fin >> p.x >> p.y;
v.push_back(p);
}
double arie = 0;
for (int i = 0; i < N; i++)
{
arie += punct<double>::arie_origine(v[i], v[(i+1)%N]);
}
if (arie < 0)
arie = -arie;
fout << fixed << setprecision(6) << arie;
return 0;
}