Cod sursa(job #1484122)

Utilizator mike93Indricean Mihai mike93 Data 10 septembrie 2015 15:06:02
Problema Aria Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

long double aria(long double x1, long double y1, long double x2, long double y2) {
	long double res = 0.5 * (x1 * y2 - x2 * y1);
	return res;
}

int main() {
	FILE* fin = fopen("aria.in", "r");
	int n;
	fscanf(fin, "%d\n", &n);
	long double* x = malloc(n * sizeof(double));
	long double* y = malloc(n * sizeof(double));
	int i;
	for(i=0; i<n; i++) {
		fscanf(fin, "%llf %llf\n", &x[i], &y[i]);
	}
	fclose(fin);
	
	long double res = 0.0;
	for(i=0; i<n-1; i++) {
		res = res + aria(x[i], y[i], x[i + 1], y[i + 1]);
	}
	res = res + aria(x[n - 1], y[n - 1], x[0], y[0]);
	
	FILE* fout = fopen("aria.out", "w");
	fprintf(fout, "%llf\n", res);
	
	free(x);
	free(y);
	fclose(fout);
	return 0;
}