Cod sursa(job #1466024)

Utilizator diac_paulPaul Diac diac_paul Data 28 iulie 2015 14:43:54
Problema Aria Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#define NMax 100001
FILE *fin = fopen("aria.in", "r");
FILE *fout = fopen("aria.out", "w");
 
int n;
double x[NMax], y[NMax];
double areaTri(int a, int b, int c) {
    double rez = 0;
    rez += x[a] * y[b];
    rez += y[a] * x[c];
    rez += x[b] * y[c];
 
    rez -= x[a] * y[c];
    rez -= y[a] * x[b];
    rez -= y[b] * x[c];
 
    return rez;
}
int main() {
 
    fscanf(fin, "%d", &n);
 
    for (int i = 0; i < n; i++) {
        fscanf(fin, "%lf %lf", &x[i], &y[i]);
    }
    double area = 0;
    for (int i = 1; i + 1 < n; i++) {
        area += areaTri(0, i, i + 1);
    }
    if (area < 0) {
        area = -area;
    }
    fprintf(fout, "%.5lf\n", area / 2.0);
 
    fclose(fin);
    fclose(fout);
    return 0;
}