Pagini recente » Cod sursa (job #780213) | Cod sursa (job #527994) | Cod sursa (job #1714837) | Cod sursa (job #59190) | Cod sursa (job #1687471)
#include <cstdio>
#include <utility>
#include <vector>
using namespace std;
int n;
vector<pair<long double, long double> > puncte;
void citire()
{
scanf("%d", &n);
long double x, y;
for(int i = 0; i < n; i++)
{
scanf("%Lf %Lf", &x, &y);
x += 1000000;
y += 1000000;
puncte.push_back(make_pair(x, y));
}
puncte.push_back(puncte[0]);
}
void arie()
{
long double arie = 0;
for(int i = 0; i < n; i++)
{
arie += (puncte[i + 1].first - puncte[i].first) * (puncte[i].second + puncte[i + 1].second);
}
arie /= 2;
if(arie < 0)
{
arie = -arie;
}
if(arie == (int)arie)
{
printf("%.0Lf", arie);
}
else if((arie * 10) == (int)(arie * 10))
{
arie = arie * 10;
arie = (long long)arie;
arie = arie / 10;
printf("%.1Lf", arie);
}
else if((arie * 100) == (int)(arie * 100))
{
arie = arie * 100;
arie = (long long)arie;
arie = arie / 100;
printf("%.2Lf", arie);
}
else if((arie * 1000) == (int)(arie * 1000))
{
arie = arie * 1000;
arie = (long long)arie;
arie = arie / 1000;
printf("%.3Lf", arie);
}
else if((arie * 10000) == (int)(arie * 10000))
{
arie = arie * 10000;
arie = (long long)arie;
arie = arie / 10000;
printf("%.4Lf", arie);
}
else
{
arie = arie * 100000;
arie = (long long)arie;
arie = arie / 100000;
printf("%.5Lf", arie);
}
}
int main()
{
freopen("aria.in", "r", stdin);
freopen("aria.out", "w", stdout);
citire();
arie();
return 0;
}