Pagini recente » Cod sursa (job #2318993) | Cod sursa (job #1578767) | Cod sursa (job #1076109) | Cod sursa (job #802115) | Cod sursa (job #1269603)
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
struct punct
{
long double X,Y;
punct()
{
X=Y=0.0;
}
punct(long double x,long double y)
{
X=x;Y=y;
}
};
struct trapez
{
punct A,B;
trapez()
{
A=punct(0.0,0.0);
B=punct(0.0,0.0);
}
trapez(punct a,punct b)
{
A=a;B=b;
}
trapez(long double x1,long double y1,long double x2,long double y2)
{
A=punct(x1,y1);
B=punct(x2,y2);
}
long double aria()
{
return (A.X-B.X)*(A.Y+B.Y)/2;
};
};
int n;
long double xd,yd,xs,ys,xi,yi,sol;
int main()
{
fin>>n;
fin>>xi>>yi;
xs=xi;ys=yi;
for(int i=2;i<=n;i++)
{
fin>>xd>>yd;
sol+=trapez(xs,ys,xd,yd).aria();
xs=xd;ys=yd;
}
xd=xi;yd=yi;
sol+=trapez(xs,ys,xd,yd).aria();
if(sol<=-0.00000001)sol=-sol;
fout<<fixed<<setprecision(10)<<sol;
return 0;
}