Pagini recente » Cod sursa (job #2731763) | Cod sursa (job #1031293) | Cod sursa (job #657012) | Cod sursa (job #1163671) | Cod sursa (job #1081118)
#include<fstream>
#include<cmath>
#define NMAX 100010
using namespace std;
ifstream f("aria.in");
ofstream g("aria.out");
struct punct
{
double x, y;
}poligon[NMAX];
int n;
void Citeste()
{
int i;
f>>n;
for (i=1; i<=n; ++i)
f>>poligon[i].x>>poligon[i].y;
poligon[n+1]=poligon[1];
}
double triunghi(punct A, punct B, punct C)
{
double det=A.x*B.y+B.x*C.y+A.y*C.x-C.x*B.y-C.y*A.x-A.y*B.x;
if (det<0.0) det=-det;
return det/2.0;
}
double ariap()
{
double s=0.0;
int i;
for (i=1; i<=n; ++i)
s+=(poligon[i].y+poligon[i+1].y)*(poligon[i+1].x-poligon[i].x);
if (s<0) s=-s;
return s/2.0;
}
double arie()
{
int i;
double a=0.0;
for (i=2; i<n; ++i)
a+=triunghi(poligon[1], poligon[i], poligon[i+1]);
return a;
}
int main()
{
Citeste();
g<<fixed<<arie()<<"\n";
g<<fixed<<ariap()<<"\n";
f.close();
g.close();
return 0;
}