Cod sursa(job #1319178)

Utilizator retrogradLucian Bicsi retrograd Data 16 ianuarie 2015 19:01:34
Problema Aria Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<cmath>
#include<iomanip>

using namespace std;

typedef double long var;

var M, N;
var arie(var x1, var x2, var y1, var y2) {
    if(x1 == x2) return 0;
    if(y1 == y2) {
        return y1*(x2-x1);
    }
    else {
        M = (x2-x1)/(y2-y1);
        N = (y1*x2-y2*x1)/(x2-x1);
    }
    return M*(x2*x2-x1*x1)/2+N*(x2-x1);

}

ifstream fin("aria.in");
ofstream fout("aria.out");

int main() {
    int n;
    var A = 0;
    fin>>n;
    var x1, y1;
    fin>>x1>>y1;
    var xc, yc, xl = x1, yl = y1;
    for(int i=2; i<=n; i++) {
        fin>>xc>>yc;
        A += arie(xl, yl, xc, yc);
        xl = xc;
        yl = yc;
    }
    A += arie(xc, yc, x1, y1);
    fout<<fixed<<setprecision(10)<<abs(A);
}