Cod sursa(job #2332698)

Utilizator AxellApostolescu Alexandru Axell Data 31 ianuarie 2019 00:52:07
Problema Aria Scor 70
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>

double area(double x1, double y1, double x2, double y2) {
	double result = (x1 * y2 - x2 * y1);
	return result;
}

int main() {
	FILE *in, *out;
	if (((in = fopen("aria.in", "rt")) == NULL)) {
		printf("Nu am putut deschide fisierul de input!");
		return -1;
	}
	if (((out = fopen("aria.out", "wt")) == NULL)) {
		printf("Nu am putut deschide fisierul de output!");
		return -2;
	}
	int n, check = 0;
	double x1 = 0, y1 = 0, x2, y2;
	double first_x, first_y;
	double arie = 0;
	fscanf(in, "%d", &n);
	for (int i = 0 ; i < n ; ++i) {
		fscanf(in, "%lf %lf", &x2, &y2);
		if (!check) {
			first_x = x2;
			first_y = y2;
			check = 1;
		}
		arie += area(x1, y1, x2, y2);
		x1 = x2;
		y1 = y2;
	}
	arie += area(x2, y2, first_x, first_y);
	arie /= 2.0;
	fprintf(out, "%0.6lf\n", arie);
	// Freeing the memory
	fclose(in);
	fclose(out);
	return 0;
}