Pagini recente » Cod sursa (job #239411) | Cod sursa (job #2056453) | Cod sursa (job #1526002) | Cod sursa (job #2526966) | Cod sursa (job #2929957)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
using namespace std;
ifstream f("aria.in");
ofstream g("aria.out");
struct pct
{
long double x;
long double y;
}a[100005];
int n;
void cit()
{
f>>n;
for(int i=0;i<n;i++)
{
f>>a[i].x>>a[i].y;
}
}
long double det(pct A, pct B)
{
long double nr=A.x*B.y-A.y*B.x;
return nr;
}
long double modul(long double x)
{
if(x<0)
return ((-1)*x);
return x;
}
long double supr()
{
long double s=0;
for(int i=0;i<n-1;i++)
s+=0.5*det(a[i],a[i+1]);
s+=0.5*det(a[n-1],a[0]);
return modul(s);
}
long double supr_trap()
{
long double s=0;
for(int i=0;i<n-1;i++)
s+=(a[i].y+a[i+1].y)*(a[i+1].x-a[i].x);
s+=(a[n-1].y+a[0].y)*(a[0].x-a[n-1].x);
return (0.5*modul(s));
}
void afis()
{
g<<fixed<<setprecision(6)<<supr_trap();
}
int main()
{
cit();
afis();
return 0;
}