Pagini recente » Cod sursa (job #2288837) | Cod sursa (job #3285555) | Cod sursa (job #1673572) | Cod sursa (job #2366042) | Cod sursa (job #2136803)
#include <iostream>
#include <fstream>
#include <iomanip>
#define DIM 100002
#define INF 1e9 + 1
#define pr pair<double, double>
#define x first
#define y second
using namespace std;
ifstream in ("aria.in");
ofstream out("aria.out");
int n;
double A;
pr p[DIM], pctar;
double det(pr a, pr b, pr c){
return (double)(a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y)) / (double)2.0;
}
int main(int argc, const char * argv[]) {
in>>n;
for(int i = 1; i <= n; ++ i)
in>>p[i].x>>p[i].y;
pctar = make_pair(0, 0);
p[n + 1] = p[1];
p[n + 2] = p[2];
for(int i = 1; i <= n; ++ i){
if(det(p[i], p[i + 1], p[i + 2]) == 0){
A += det(p[i], p[i + 2], pctar);
++ i;
}
else
A += det(p[i], p[i + 1], pctar);
}
out<<setprecision(7)<<fixed<<(double)(A);
return 0;
}