Pagini recente » Istoria paginii utilizator/patrunjelxd | Cod sursa (job #1175331) | Cod sursa (job #578051) | Istoria paginii runda/2k.2 | Cod sursa (job #1683946)
#include <fstream>
#include <cstdio>
#include <cmath>
#include <iomanip>
using namespace std;
ofstream g("aria.out");
FILE *f;
double aria;
double modul(double a)
{
if(a < 0)
return -a;
return a;
}
int n, i ;
double x[100001], y[100001];
int main()
{
f = fopen("aria.in", "r");
// g = fopen("aria.out", "w");
fscanf(f, "%d", &n);
for(i = 1 ;i <= n; i ++)
{
fscanf(f, "%lf%lf", &x[i], &y[i]);
}
for(i = 1; i <= n - 1; i ++)
{
aria += (0.5f * (modul((x[i] - x[i + 1]) * (y[i] + y[i + 1]))));
// printf("%f %f %f %f\n", x[i] , x[i + 1] , y[i] , y[i + 1]);
}
aria += (0.5f * modul((x[n] - x[1]) * (y[n] + y[1])));
// 1/2*modul((x1-x2)*(y1+y2) + (x2-x3)*(y2+y3) + ... + (x(n-1)-xn)*(y(n-1)+yn) + (xn-x1)*(yn+y1))
g << fixed << setprecision(6) << aria;
fclose(f);
g.close();
return 0;
}