Pagini recente » Cod sursa (job #2146842) | Cod sursa (job #1891345) | Cod sursa (job #2044028) | Cod sursa (job #2690396) | Cod sursa (job #1887583)
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
int n;
struct puncte
{
double x, y;
}v[100005];
void read()
{
scanf("%d", &n);
for(int i=1; i<=n; ++i)
scanf("%lf %lf", &v[i].x, &v[i].y);
}
double ariaTriunghiuri()
{
double aria=0;
for(int i=1; i<n; ++i)
{
aria+=v[i].x*v[i+1].y-v[i+1].x*v[i].y;
}
aria+=v[n].x*v[1].y-v[1].x*v[n].y;
return (double) 0.5*aria;
}
double ariaTrapeze()
{
double aria=0;
for(int i=1; i<n; ++i)
{
aria+=(v[i].y+v[i+1].y)*(v[i].x-v[i+1].x);
}
return (double) 0.5*aria;
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
read();
//printf("%.5lf", ariaTriunghiuri());
printf("%.5lf", abs(ariaTrapeze()));
return 0;
}