Pagini recente » Cod sursa (job #274867) | Cod sursa (job #2742165) | Cod sursa (job #374326) | Cod sursa (job #561596) | Cod sursa (job #2642012)
#include <bits/stdc++.h>
using namespace std;
ifstream ci("aria.in");
ofstream cou("aria.out");
struct punct
{
double x,y;
};
int n;
punct v[100005];
punct pct;
double calc(punct a,punct b,punct c)
{
double p=0;
double ab,ac,bc;
ab=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
ac=sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
bc=sqrt((c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y));
p+= ab;
p+= ac;
p+= bc;
p/=2;
return sqrt(p*(p-ab)*(p-ac)*(p-bc));
}
void citire()
{
ci>>n;
double a=0,b=0;
for(int i=1; i<=n; i++)
{
ci>>v[i].x>>v[i].y;
a+=v[i].x;
b+=v[i].y;
}
pct.x=(a*1.0)/n;
pct.y=(b*1.0)/n;
//cout<<pct.x<<" "<<pct.y<<"\n";
}
void rez()
{
punct b,c;
int i;
double arie=0;
punct pct2;
for(i=1; i<=n-1; i++)
{
b=v[i];
c=v[i+1];
//cout<<pct.x<<" "<<pct.y<<"\n";
arie+=calc(pct,b,c);
}
b=v[1];
c=v[n];
//cout<<pct.x<<" "<<pct.y<<"\n";
pct2=pct;
//cout<<pct2.x<<" "<<pct2.y<<"\n";
arie+=calc(pct,b,c);
cou<<fixed<<setprecision(6)<<arie;
//cou<<arie;
}
int main()
{
citire();
rez();
return 0;
}