Pagini recente » Cod sursa (job #1701418) | Cod sursa (job #346564) | Cod sursa (job #122053) | Cod sursa (job #462356) | Cod sursa (job #2502168)
using namespace std;
#include<iostream>
#include<fstream>
#include<math.h>
#include<iomanip>
int n;
struct point {
int x, y;
} p[100001], punct;
double s;
double area (point a, point b, point c) {
a.x -= c.x;
a.y -= c.y;
b.x -= c.x;
b.y -= c.y;
return fabs((double)(a.x*b.y-a.y*b.x)/2);
}
int main() {
ifstream fin("aria.in");
ofstream fout("aria.out");
fin >> n;
for (int i = 1; i<=n; i++) {
fin >> p[i].x >> p[i].y;
if (p[i].y < punct.y) {
punct.y = p[i].y;
}
if (p[i].x < punct.x) {
punct.x = p[i].x;
}
}
punct.y -= 100;
for (int i = 1; i<n; i++) {
if (p[i].x < p[i+1].x) {
s-=area(punct, p[i], p[i+1]);
} else {
s+=area(punct, p[i], p[i+1]);
}
}
if (p[n].x < p[1].x) {
s-=area(punct, p[n], p[1]);
} else {
s+=area(punct, p[n], p[1]);
}
fout << fabs(s);
fin.close();
fout.close();
return 0;
}