Pagini recente » Cod sursa (job #1564443) | Cod sursa (job #2982703) | Cod sursa (job #2783904) | Cod sursa (job #575304) | Cod sursa (job #1833125)
#include <stdio.h>
#include <math.h>
struct Point{
long double x;
long double y;
}vertices[100000];
long double CrossProduct(struct Point a, struct Point b){
return a.x*b.y - a.y*b.x;
}
long double PolygonArea(struct Point vertices[], int N){
long double sum = 0.0;
int i;
for(i=0; i<N; i++){
sum += CrossProduct(vertices[i], vertices[(i+1)%N]);
}
return fabs(sum)/2.0;
}
int main(){
FILE *file1, *file2;
int N, i;
file1 = fopen("aria.in", "r");
file2 = fopen("aria.out", "w");
fscanf(file1, "%d", &N);
for(i=0; i<N; i++){
fscanf(file1, "%llf", &vertices[i].x);
fscanf(file1, "%llf", &vertices[i].y);
}
fprintf(file2, "%.5llf", PolygonArea(vertices, N));
return 0;
}