Cod sursa(job #1466023)

Utilizator diac_paulPaul Diac diac_paul Data 28 iulie 2015 14:42:40
Problema Aria Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#define NMax 100001
FILE *fin = fopen("aria.in", "r");
FILE *fout = fopen("aria.out", "w");
 
int n;
float x[NMax], y[NMax];
float areaTri(int a, int b, int c) {
    float 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, "%f %f", &x[i], &y[i]);
    }
    float area = 0;
    for (int i = 1; i + 1 < n; i++) {
        area += areaTri(0, i, i + 1);
    }
    if (area < 0) {
        area = -area;
    }
    fprintf(fout, "%.5f\n", area / 2.0);
 
    fclose(fin);
    fclose(fout);
    return 0;
}