Pagini recente » Cod sursa (job #1447844) | Cod sursa (job #1156057) | Cod sursa (job #1770106) | Clasament teme_acmunibuc_2014_2 | Cod sursa (job #891063)
Cod sursa(job #891063)
Utilizator |
Simoiu Robert SpiderMan |
Data |
25 februarie 2013 13:23:55 |
Problema |
Aria |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.71 kb |
#include <cstdio>
#include <algorithm>
#include <fstream>
#include <iomanip>
#define pdd pair <double, double>
#define x first
#define y second
using namespace std;
#define NMAX 100005
#define eps 1e-6
int n;
pdd pts[NMAX];
long double res;
long double area(pdd p1, pdd p2)
{
return p1.x * p2.y - p2.x * p1.y;
}
int main()
{
freopen("aria.in","r",stdin);
ofstream g("aria.out");
scanf("%d", &n);
int i;
for (i = 1; i <= n; i++)
scanf("%lf%lf", &pts[i].x, &pts[i].y);
pts[n + 1] = pts[1];
for (i = 1; i <= n; i++)
res += area(pts[i], pts[i+1]);
g << setprecision(6) << fixed;
g << (res > -eps ? res /2 : -res / 2);
return 0;
}