Pagini recente » Cod sursa (job #669657) | Cod sursa (job #591911) | Cod sursa (job #1217577) | Cod sursa (job #2525458) | Cod sursa (job #1973008)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
ifstream f("aria.in");
ofstream g("aria.out");
struct punct
{
long double x,y;
}a[100001];
int compare (punct q,punct t)
{
if(q.x==t.x)return (q.y<t.y);
return (q.x<t.x);
}
long double arie (long double xA,long double yA,long double xB,long double yB, long double xC, long double yC)
{
long double dif;
dif=(yC-yA)*(xB-xA)-(yB-yA)*(xC-xA);
if(dif<0)dif=dif*(-1);
dif=dif/2;
return dif;
}
int n,i;
long double suma1,suma,suma2,p1,p2;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i].x>>a[i].y;
//g<<a[i].x<<'\n';
suma1+=a[i].x;
suma2+=a[i].y;
}
long double y=n;
p1=suma1/y;
p2=suma2/y;
for(i=1;i<=n-1;i++)
{
suma+=arie(p1,p2,a[i].x,a[i].y,a[i+1].x,a[i+1].y);
}
suma+=arie(p1,p2,a[n].x,a[n].y,a[1].x,a[1].y);
// sort(a+1,a+n+1,compare);
/* long double suma=0;
suma=suma+arie(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);
for(i=4;i<=n;i++)
{
suma=suma+arie(a[i-2].x,a[i-2].y,a[i-1].x,a[i-1].y,a[i].x,a[i].y);
}
g<<suma;
*/
g<<fixed<<setprecision(6)<<suma;
return 0;
}