Pagini recente » Cod sursa (job #2045939) | Cod sursa (job #2539856) | Cod sursa (job #1039614) | Cod sursa (job #376650) | Cod sursa (job #1687767)
#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 x)
{
if(x==(int)x)
{
printf("%.0Lf",x);
return;
}
if((x*10)==(int)(x*10))
{
x*=10;
x=(long long)x;
x/=10;
printf("%.1Lf",x);
return;
}
if((x*100)==(int)(x*100))
{
x*=100;
x=(long long)x;
x/=100;
printf("%.2Lf",x);
return;
}
if((x*1000)==(int)(x*1000))
{
x*=1000;
x=(long long)x;
x/=1000;
printf("%.3Lf",x);
return;
}
if((x*10000)==(int)(x*10000))
{
x*=10000;
x=(long long)x;
x/=10000;
printf("%.4Lf",x);
return;
}
if((x*100000)==(int)(x*100000))
{
x*=100000;
x=(long long)x;
x/=100000;
printf("%.5Lf",x);
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;
}