Pagini recente » Cod sursa (job #1243953) | Cod sursa (job #1142977) | Cod sursa (job #2221609) | Cod sursa (job #484493) | Cod sursa (job #3256664)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("aria.in");
ofstream fout("aria.out");
struct Punct
{
double x, y;
};
int n;
double arie;
Punct p[100005];
void citire() {
for (int i = 0; i < n; i++)
fin >> p[i].x >> p[i].y;
}
void calculArie() {
Punct p1, p2;
int cnt1 = 0, cnt2 = 1;
p1 = p[cnt1 % n];
p2 = p[cnt2 % n];
while (p2.x != p[0].x || p2.y != p[0].y)
{
arie += (p1.y + p2.y) * (p2.x - p1.x) / 2;
cnt1++;
cnt2++;
p1 = p[cnt1 % n];
p2 = p[cnt2 % n];
}
arie += (p1.y + p2.y) * (p2.x - p1.x) / 2;
}
int main() {
fin >> n;
citire();
calculArie();
//arie = (double) ((int)(arie * 100000)) / 100000;
fout << setprecision(6) << fixed;
if (arie > 0) fout << arie;
else fout << -arie;
return 0;
}