Pagini recente » Monitorul de evaluare | Cod sursa (job #2319679) | Cod sursa (job #1353660) | Cod sursa (job #146407) | Cod sursa (job #903499)
Cod sursa(job #903499)
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cassert>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <map>
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef vector<int>::iterator it;
const int oo = 0x3f3f3f3f;
const int MAX_N = 100005;
typedef pair<double, double> Point;
Point P[MAX_N];
int N;
double Solution;
inline double Det(Point P1, Point P2) {
return P1.x * P2.y - P1.y * P2.x;
}
double Area() {
double A = 0;
for (int i = 1; i <= N; ++i)
A += 0.5 * Det(P[i], P[i + 1]);
return abs(A);
}
void Solve() {
P[N + 1] = P[1];
Solution = Area();
}
void Read() {
ifstream in("aria.in");
in >> N;
for (int i = 1; i <= N; ++i)
in >> P[i].x >> P[i].y;
in.close();
}
void Print() {
ofstream out("aria.out");
out << fixed << setprecision(4) << Solution << "\n";
out.close();
}
int main() {
Read();
Solve();
Print();
return 0;
}