Pagini recente » Cod sursa (job #2205234) | Cod sursa (job #3268255) | Cod sursa (job #2354234) | Cod sursa (job #1358479) | Cod sursa (job #1688212)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n;
struct coord
{
long double x,y;
} coordonate[100000];
void citire()
{
scanf("%d\n",&n);
for(int i=0; i<n; i++)
{
scanf("%Lf %Lf\n",&coordonate[i].x,&coordonate[i].y);
coordonate[i].x += 1000000;
coordonate[i].y += 1000000;
}
coordonate[n].x = coordonate[0].x;
coordonate[n].y = coordonate[0].y;
}
void afisare(long double z)
{
if(z==(int)z)
{
printf("%.0Lf",z);
return;
}
if((z*10)==(int)(z*10))
{
z*=10;
z=(long long)z;
z/=10;
printf("%.1Lf",z);
return;
}
if((z*100)==(int)(z*100))
{
z*=100;
z=(long long)z;
z/=100;
printf("%.2Lf",z);
return;
}
if((z*1000)==(int)(z*1000))
{
z*=1000;
z=(long long)z;
z/=1000;
printf("%.3Lf",z);
return;
}
if((z*10000)==(int)(z*10000))
{
z*=10000;
z=(long long)z;
z/=10000;
printf("%.4Lf",z);
return;
}
z*=100000;
z=(long long)z;
z/=100000;
printf("%.5Lf",z);
return;
}
void prelucrare()
{
long double arie=0;
for(int i=0; i<n; i++)
{
arie+=((coordonate[i].y+coordonate[i+1].y)*(coordonate[i+1].x-coordonate[i].x));
}
arie=abs(arie/2);
afisare(arie);
}
int main()
{
freopen("aria.in","r",stdin);
freopen("aria.out","w",stdout);
citire();
prelucrare();
return 0;
}